I think I can answer those questions - you have made your issues very clear!
The UART overrun error only would occur if the firmware is unable to process data as quickly as you are sending it. This should never happen in practice, but if it does, a simple fix on your side would be to add some delays. We will get that fixed in the documentation soon.
A few microseconds! A processor can't really do anything in a few microseconds. We actually have not measured how quickly the Maestro boots up, but I would estimate that it will be ready to receive your input within a few hundred microseconds. Why not give it a few milliseconds to be safe?
You are correct, and we should note it in the documentation. As long as the servo has not reached its destination, it will appear to still be "moving". As long as you do not try to set an unreachable target, you should not have problems.
I can explain some things that might help you understand what you are seeing. When the speed is set to 0, any new target takes effect instantly. When it is set to some positive value, the position is update on a fixed schedule, every 10 ms. So, suppose you have position=4000 and speed=1000, and you send the sequence position=5000; speed=1. Sometimes, an update will occur between the commands, and position will update to 5000 before the new speed takes effect. Of course, this problem can be solved by sending the speed command first.
Thanks for the feedback and please let me know if you have more questions!