Weird serial behavior on atmega2560
Answering my own question - a bit of a walk of shame here.
I had disabled the internal TIMER0_OVF_vect in the arduino core code, so that I could write my own (for another project). I wrapped in in an #if 0 so I could go and bring it back when I needed it.
Today, I learned that the atmega interrupts aren't filled with an IRET by default, but instead hit the reset vector, resetting the board. Anything I compiled on this library would reset whenever TIMER0 overflowed, because my ifdefs didn't cover the TIMSK setting in the arduino core either
The &quot;Serial.println isn't exiting&quot; was actually &quot;the board is resetting before it can complete&quot; and explains why faster bauds could print more data.
Not much smarter than hairless apes, sometimes.