I think your communication timeout with 2 seconds is much too low. 3 is minimum if firmware supports busy protocol meaning it tells server when it is busy during slow commands. But Marlin 1.0.0 does not know this, so timeout must be higher then longest move you expect. Anytime a move takes longer then timeout you will otherwise get a timeout. Try 30s and it should reduce to a much lower value of timeouts - only when you really have transmission errors.