In JS land, this problem (streaming, resuming, recovering, multi-client, etc) has been fully solved by https://durablestreams.com - and it can be self-hosted, or managed via Cloudflare DO.
It's a bit harder to do agent presence ('is the agent still there') with this model without heartbeats, but possible.
It's good to see the industry starting to address the "durable sessions" problem, because it sucks.