Async: Fail assertions after existing assert.async flows are resolved

Fail assertions after existing `assert.async` flows are resolved.

Fixes #668
Closes #669
> I assume you mean catching the `Error` in the test callback and setting it as a property on the test context object, then verifying it with an assertion during `afterEach`? That would be OK too but still somewhat indirect.

Exactly. But like you say, it's not very direct.

> That idea does point out an additional gap in unit tests for this update, though: I should add a test that does async in `beforeEach`/test and verify you can still do assertions in test/`afterEach`.

Good call.