I think it would be nice to return that for `socketClose()` too. (Or, as you note, it would be basically equivalent to have the last line of `socketClose()` be `return this.output.closed`.) As you say, I don't think it's needed, but it's nice. I see no real downside.

A trickier question would be whether it's worth exposing `mySocket.closed`. (Either returning the socket's `closingPromise` you mention, or just as a getter that returns `this.output.closed`.) I am not sure. Again, it could be nice, for people who are working primarily at the socket-API level and not the stream level. But then again it is basically duplicating properties and does add a bit more API surface than simply changing an `undefined` return value to a useful promise. I might lean toward leaving it out at first?