That's pretty good! Did you homebrew some software, or is it another package that you use? I see a serial failure a few times a day, if I'm running the CNC all day. Interestingly, I have a small shop vac on the same power strip, and I run it every few minutes, and I've yet to have a serial failure that way. Always seems to be random otherwise. Not a huge deal, just delete out the lines of G-code that are already done, and restart.
So I had a thought, and it's probably more involved than the simplest solution. One solution to your use case of running the machine to the four corners at low speed would be to have the Arduino compute travel time to the next point, and the timeout period is travel time + 2 seconds. Not as simple as just waiting for a straight timeout, but would accommodate long travel distances.