You're sending data to Serial Monitor at a fairly high rate. Even a very good terminal program sometimes has problems keeping up in that situation. In other (less) words, I agree with PaulS.
I wanted to build the application up piece by piece to make debugging easier
A VERY good plan.
And I'm confused by this stuttering behavior of the simplest possible piece of the application.
I suggest staging a more realistic test...
my goal is to sample four analog channels at a minimum of 300 samples/second/channel
4 channels * 300 samples per second * 2 bytes per sample (minimum) = 2400 bytes per second (minimum)
57600 / 10 = 5760 bytes per second
(5760 - 2400) / 5760 * 100 = 58.4% of the time the serial connection will be idle
(3360 / 5760) / (300 * 2 / 4) * 1000000 = 3889 microseconds between each four bytes
Add a delayMicroseconds(3889);
to your Sketch. How does it behave?
I just think that it might be maddening to debug a complex app if I can't get this working as expected. But hey, I'm not an experienced embedded developer, so maybe that instinct is wrong.
I'm not an experience embedded developer either but I can say you will be well served to go with your instinct.