On a guess, I just did some experiments with computer time being off (even a little), and I was able to replicate somewhat of what you describe. Your description of "practice to give training to my team" gave me a clue and made me think things happened quickly.
First let me explain: A persons status is based on time, when MM is running online the time is all the same for all users because the time on the server is used. The server time must be used because many people using MM at once online their individual computer times could be off and this would cause logging issues, like I suspect we have here. When you are offline, MM must use the local computers time, there is no server to talk to to confirm the current time, so the local computer must be trusted.
Normally its NP if the server time and local computer time is off by even a few minutes for the offline syncing. Typicality you would be working in the field offline and a large amount of time (more than a couple of minutes) would pass until you got back to a place you could be online again and do a sync. So even a few minutes off is NP, enough time would pass for there to not be any confusion. But in the case of jumping from online to offline quickly back and forth even a few seconds off between times could make a difference and confuse a persons actual status.
*If* this is the case, I'm not sure there is a perfect fix, other than maybe some sort of message about times being out of sync. The MM server time is going to be close to the real current time, you might confirm your computer is as well is set to that.
I hope this is the issue, it would explain the inconsistencies here and why it was so hard to replicate the issues. If this isn't the problem we'll keep looking.