This is something I did wonder about - it wasn’t tested when I initially implemented the viewer and I agree that should be fixed - feel free to raise an issue for this on Github and I will take a look some time soon.
I’m not sure. I suspect (it’s a guess) that things kind of slow down. The keep alive is sent every 9 seconds, and if the server doesn’t receive anything after 10 seconds it disconnects. I say this because from my experience it is a bit non-deterministic - sometimes it disconnects, and other times it stays running, but I’ve not actively tried to debug this.
This will change a bit in the near future as I plan to get the history from the server. Ideally, the server will have this history so that when the viewer is first started, it can see the last X entries - this will also resolve this sort of issue if the server disconnects.