Error can be passed into async() + new helper method.

RE: #289

Errors passed into `this.async()` are being ignored, currently. I matched the old functionality, wrote a couple of tests, and also added in a test helper. Let me know if this can or should be done differently!