Unfortunately, based on @Kato's reproduction, I think this is expected behavior based on our current implementation.
Basically, if you do multiple transactions rapidly (or while you're offline), we'll end up batching them together and performing them as a single batch, and the final snapshot each one gets will be the final snapshot after all of them ran.
I understand this may not always be ideal. We'll look into whether we could perhaps change this behavior in the future.