Handle disconnects (and reconnects?) gracefully

Also figure out if being able to join mid-game is a thing we should do. Probably wouldn't actually be able to join right in the middle of a currently-playing stage, but once the stage restarts or the next stage begins should be a good sync point.

Assignee Loading
Time tracking Loading