In last week I lost many games because of Chess.com's buggy timing system!
I had 30s and my opponent had 10s and it was his turn to play next move. After his move, I lost the game because of time out!!
And unfortunately this problem occures many times.
It's solved in many online chess environments but I don't know why Chess.com's developers had not any effort to solve this issue.
I think the solution is: The client should calculate residual time after moving a piece on board not after receiving packet. (I'm not sure about this solution)
And I heard something named "Timeseal" maybe it works.