Oh, I would have expected `waitFor` to be idempotent, but it does not do the `isTransient()` check (`internal::waitForIfTransient` does but it is internal). I thought writing `waitFor(vm, possiblyUnbound)` would be fine as a first line, but I guess it is slightly inefficient in the regular case of already-bound argument.
Thanks for the showing me the code.