It is OK to return a promise you did not create. The benefit of returning `openedPromise` is that if you do so, the stream will not call `pull(...)` until `openingPromise` resolves. If you forget to return `openingPromise`, then the stream will call `pull(...)` immediately if the user calls `read()`, which is presumably bad since the UDP socket is not yet open.