Delay abort() when the WritableStream is in closing state

We should make this match the spec. So just do `Promise.resolve(undefined).then(() => { ... code here ... })` instead of using nextTick and new Promise.