Will any of these approaches work for Dojo reliably? And/or, is there
any other reliable way to wait for a Dojo application to load the UI?
loading (reaction to latest click, etc) has finished; the rest can be
handled by Java and Selenium.
You could look into how Intern (which leverages Selenium WebDriver as well, but with JS APIs for authoring tests rather than Java). There are a few approaches that could work. The simplest is to poll until your app is initialized, by checking for something in your app that indicates that it is done loading.