EXACTLY pal!! I am facing the same issue.. I was at 58 sec and premoved and after the move completion i had 56 sec (I was fuming lol)... I lost like 4 games due to it..
I dont care about ELO (tbh) but lost some 60 due to it.. Its really annoying to play..
I like your suggestion .. But i am also not some tech expert (like u) so cant say it right or wrong
This does not make any sense to me and I really hope that this problem exists because I need to change my settings and not because of the website's fault, but I am afraid it might be. To begin, it is almost impossible for me to play good bullet on Chess.com because of this problem.
What is this problem you may ask? I will play a move, and then play a premove (very quickly after my initial move, for the sake of explaining say .3 seconds after my first move), I will wait (hypothetically 1 second) for my opponent to make a move. Then my premove will go through, but instead of me losing 0.1 seconds for the premove, I will lose .6, with a fairly good connection, and up to 1.5 with a poor one. This makes time scrambles impossible to win.
The reason why I think this is happening is that when I send the first move, it gets immediately send to the server, but when I send my premove, it stays in my computer, until the opponent sends his move to the server, which then gets sent to me, and only after I receive this move, does my computer send this premove. This, at least I believe, is a reasonable explanation for why I am getting lag between premoves (because the lag it takes for the move to get sent to me, then for my move to get sent is being accounted for in the hypothetical 0.6 seconds between moves).
I am not a tech developer, nor have I ever really coded, nor have I ever did anything for any website, so please take my suggestion with a grain of salt.
My solution is that instead of this, make it so that when I make a move and then a premove, both of them go to the server at the same time (or at least with the exact same time between them as the time between me physically making the moves) regardless of when my opponent makes a move. Knowing this, when my opponent sends a move to the server, my premove is already at the server. Then the server will add 0.1 to my clock manually, then start the opponent's clock, then will send me back my time and will send back my move to the opponent at the same time. Doing this, lag will no longer be a major problem in premoving.
TLDR: Store removes on the server, not the client.
But then again, I could just be completely wrong.