OK, I think I now understand the problem that I had with using `Writable` as a base for this.

If we're going to be compliant with the streams2 api spec, the callback signature for `writable.write` is `writable.write(chunk, [encoding], [callback])`. When the `callback` argument is supplied, the spec says it's only to be called when the chunk of data is effectively flushed.

If we use your strategy, we would be immediately calling the `ws._write` callback (most of the time), which would then trigger the callback the user supplied to the `ws.write` before the data has been flushed to the underlying resource.

I'm not sure how to judge how serious this deviation from the spec would be...