Is Serial.begin a blocking function?

You seem to have a very high baud rate - maybe that is part of the "problem".

I've never used a baud rate higher than 115200 and I have never needed to put a pause between the begin() and the print().

...R