The same thing happens to me regularly on a recent Motorola Moto X Play phone running Android 6.0.1. I use Chrome. No add ons whatsoever. It happens on smaller threads too. But I'll make a note of which ones.
A typical occurrence is reading marked threads. Switching to another task for an hour or 2 and, when I get back to Discourse, the old threads are marked unread.
Edit: I believe one work around is to "pull refresh" the page. If I force a complete reload, then the read markers seem more reliable (indicating they get stored server side OK, I guess). I'll double-check.
But that negates the advantages Discourse data and dynamic refresh wise. It's also quite slow as, when you do that, the data has to be pulled, then the page goes blank for a fraction of a second, after which the app shell and the content get redrawn.