Fixing view state issues on app boundaries

Doing an iOS 8 pass, I came across a number of issues where not waiting on asynchronous UI processes to complete was causing issues in (re-)initializing new UI state.  I'll annotate specifics in the code.
In the condition where there's a modal view controller presented, simply changing the root view controller was insufficient.  So now we attempt to dismiss any presented view controllers before continuing with the UI reset.