3) Make qemu request balloon stats regularly (maybe every 10 seconds)
and display the latest stats with info balloon. This avoids the
problem in #2 but it means that qemu determines the poll rate instead
of a management tool.
4) Make info-balloon a proper asynchronous command. We need new
infrastructure to allow a qmp handler to take a callback that can be
used to delay the completion of the command. This addresses all of
the above problems but it introduces a new one. Command completion
now depends on the guest. This potentially could trip up a naive
management tool that doesn't realize that the info-balloon command may
never complete.
I'm on the fence between 3 and 4 myself.