Face-palm.
Here, let's do the hard sums together.
Original code, cord moving at 1 metre per second.
1000mm / 2.5mm is 400 pulses per second.
So 400 characters per second over a medium capable of 1920 characters per second.
So far, so good.
For every character you receive, you attempt to print at least eight characters.
So 400 characters in, and 400x8 characters out = 3200 characters per second.
Over a medium capable of 960 characters per second.
So, what happens?
The output stalls, busy-waiting for the output queue to empty, and you miss reading input characters.
After a while, the input buffer silently overflows, and you skip pulses.
Sound familiar?