Handle alternate stream that may be async

I took this from the async test of through module: https://github.com/dominictarr/through/blob/master/test/async.js

* [ ] need tests

Closes #6