Have you never felt so exhausted from working your day job that you don’t feel like building anything during your free time?
I think it's totally fine to not make stuff outside of work, and it's so impressive to me that some of my friends manage to make creative stuff in their free time while working a day job.
As long as you'd sent all their moves off to the server, they should see all the moves they've done which were valid (hmm.. there could be a race condition there). I wonder how often it's worth doing the more complex unwinding described? I may well be missing some complex case (which I imagine is often the case with rollback!)
I don't think requesting a new snapshot really helps there. If you do that you're dramatically extending the amount of time that the user sees an invalid state, since you're adding a whole new server roundtrip to the reconciliation process.