ULC itself only invokes waitForIdle() from the CommunicationController.
UISession.waitForIdle() is not 100% thread safe. In the following cases this can be an issue:
- multiple sessions in one client VM (as each session has its own CommunicationController)
- testing (as the test thread usually uses UISession.waitForIdle() to synchronize with the CommunicationController and AWT's EventDispatchThread)