Why does it take 3 full seconds for a premove to execute?


It can be more time if you're experiencing excessive lag. Premoves are cached client side and only are made after receiving each opponent's moves. They are not all sent to the server when made; that's why they can be cancelled easily.
The site does allow some lag and forgives it, but if there's more than that, it counts against the clock. Also only the lag between you and the server counts for your moves, not that of your opponents.
https://support.chess.com/article/213-how-do-i-fix-my-disconnect-lag-issues