Check for destroyed before waiting on drain.
Check for destroyed before waiting on drain.

If you have an error on a write without a callback the error is not
thrown by `write`. It is reported through the `"error"` event handler.

If there is an error (like write after FIN) then the `drain` event will
never return. The `destroy` will have been called by the error handler
so any subsequent calls to `destroy` will not unstick the call to
`delta`.

We need to assert that the Writable was not destroyed by the write
before waiting on drain. That's what this change does.

bigeasy/staccato