How to work with non-traditional UART baud rates
The Arduino Nano cannot do 800&nbsp;kb/s. As you can see in the source
code, the bit duration is rounded to the nearest multiple of
8&nbsp;CPU cycles. In your case, it is rounded to
3&nbsp;×&nbsp;8&nbsp;CPU cycles, which yields a baud rate of
666.666&nbsp;kb/s. That is 16% too slow, an error too large for any
communication to be possible.

At 400&nbsp;kb/s there is no rounding error, so everything works fine.

Edit: Note that if you build your own barebones
Arduino, then either a 12.8&nbsp;MHz or a 19.2&nbsp;MHz
crystal should allow you to get that exact baud rate. But then
millis(), delay() and co. would all be off.