I believe the spec allows sharing the same connection for multiple sessions and multiple requests as well, since WebTransportSession is wrapping it Mutex anyway to store it, making the argument itself as Arc<Mutex<Connection<C, B>>> might be helpful.
Preferably async Mutex, as we have to use
async fn Connection::accept(&mut self)
for incoming requests
#289 and #186 are related
making the connection cloneable and keeping the mutability internally would allow sharing same connections for multiple sessions is probably better than having Arc<Mutex<Connection<C, B>>> everywhere