Loading view not always hidden

The async callbacks on animations can stop the hide from working on the loading window.
This PR ensures that the hide waits long enough to stop the show from happening, if the loading window isn't quite there when hide is called.