No real reason to be hitting the hardware that "hard" when it should be dormant. Not that 1 second polling is hard...
We wait until it is the new position.
Do you have any handling for overlapping IO? For instance do you have a mutex around the serial connection so that it is locked and protected from multi-threaded access and prevents multiple reads/writes happening concurrently? This would explain the odd behavior you're seeing with something that is difficult to duplicate.
Thanks,
Jared