Perform setups and teardowns blocking on each other. To avoid interfering.

This looks great.  I'd also like to see a test which avoids use of setTimeout, because the setImmediate will still always fire once per 'orientation' change for the current test, whereas I think on real devices the setImmediate sometimes doesn't have time to execute as the device is pounded with events...