I had thought to keep the setTimeouts as an example test of where we started with.  The only promise used is the wait for the app to be ready.  However, the Ember.run() blocks are indeed capturing the transitions.  I did find in my discoveries that triggering events in other ways around ember will cause the full transition to that state to not complete in an Ember.run().  So there are times when indeed wrapping most of your interaction w/ the app in an Ember.run() will work for an integration test.  But sometimes there not.  I think there is more digging needed to be done there.