fix for async buffering issue

There was a streams1-related race condition (combine-stream is streams1) where the output stream would start emitting before the outer callback had been fired, so it was impossible for consumers to consume all the data. This fix just adds a `through2` into the pipeline, which is streams2 and automatically buffers writes with proper streams1-compatible backoff logic if it's not being consumed.