`createAsyncIterator` should throw `ERR_STREAM_PREMATURE_CLOSE` if `'close'` is emitted before `'end'`. Right now I think it just silently succeeds.