It does look like this kernel configuration has
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y.
If it's not getting onlined, you easily sport after hotplug e.g., via
"lsmem" that there are quite some offline memory blocks.
Note that x86_64 code will fallback from populating huge pages to
populating base pages for the vmemmap; this can happen easily when under
memory pressure.
Not sure if it is relevant or not but this warning can show up within a
minute of startup without me doing anything in particular.
If adding memory would fail completely, you'd see another "hot_add
memory failed error is ..." error message from hyper-v in the kernel
log. If that doesn't show up, it's simply suboptimal, but hotplugging
memory still succeeded.
I did notice that from the code in hv_balloon.c but I do not think I
have ever seen that message in my logs.