Use UART 2X mode to reduce timing errors. Don't harcode register values.

For some reason at double-speed the errors come out smaller at all baud
rates and all interesting F_CPU values.
Increase delay before Tx operations.
More granular locking (interrupt enable/disable).