Refactoring around how error processing happens during tests.
Insert async-steps synchronization code at the end of the it-block rather than using an after-block; this means normal user-created after blocks are not skipped due to errors in the test.