In bug 916780 a feature was added to guestmount to avoid daemonizing, which allows the caller to watch its status via normal waitpid(). However, at the moment callers still have to use the pid file. It's possible to use inotify on the pid file to avoid polling, but another model might be a --with-ready-pipe-fd or so, where the caller provides a pipe (or eventfd) to guestmount, and it writes a byte when it's successfully mounted.
It probably works if you set the --pid-file to be a pipe :-) However we can add a --fd=<N> option, analogous to the guestunmount option.
Patches posted: https://www.redhat.com/archives/libguestfs/2014-May/msg00091.html
This is now available in libguestfs >= 1.27.13.