I've implemented compensation for this issue. Whenever world.time overshoots the movedelay, the remainder is subtracted from the next movedelay. This keeps movement speed consistent and actually smooths things out a bit. It doesn't completely solve the problem, but it keeps travel times accurate to within 1 decisecond and prevents it from growing and compounding over long distances.