HTTP/2 and HTTP/3 semantics, on a WebSocket
The stream model HTTP/2 and HTTP/3 already settled - many independent streams, either end able to open one, cancellation per stream - without needing QUIC or an HTTP/3 stack.
Either end can start one. Any one of them can be cancelled on its own. A large payload never holds up a small one. It is the layer you would otherwise write again and again in every project.