MEGA 2560 - Odd Timer Behavior first loop and intermittent thereafter

I believe all the information needed for the problem is included above (also the datasheet can be referenced). Can you please be more specific about what "further information" you would need?

That depends on the timer mode. In CTC mode (what is used in this case), the OCRnA register IS the TOP value (CTC a.k.a. "clear timer on compare match). "OCR" is ambiguous without a timer and output designation, but the fact that this topic is about testing timer 3, output A, is your indicator of which OCR I'm referring to. Further, the code and serial outputs provided show specifically which register addresses are set for each pointer, as well as what the values of said registers are. This provides opportunity for a streamlined analysis of the settings, side-by-side with the datasheet, to ensure no bits are set incorrectly in the registers.

The output compare unit is set to toggle OC3A on compare match, so the OCRnA (OCR3A in this case) register is the half period of the square wave output.

I'll look into this, thank you.

I really am quite sorry for how I am apparently coming across. I am attempting to answer your questions and be as thorough and factual as possible with my answers. What is it that I am not providing for you? Are my code blocks not coming through on the forum?

As for my algorithm or a description thereof, you have not asked for that. Besides, the "algorithm" is the standard microcontroller linear speed ramp for steppers, found literally everywhere online with a simple google search. Off the top of my head, Atmel has a document on this, named something along the lines of "AVR446: Linear speed control of stepper motor", which describes the algorithm in detail. I felt it unnecessary to include something that is referenced dozens of times across this forum, and further unnecessary to regurgitate readily available information.

If you actually look into the information that I've provided, you will notice that I have an extra "1/2" in my OCR calculations (counting frequency is divided by two) versus the algorithm described in i.e. the "AVR446..." document. This is because the algorithm expects the "count" value to be the count between pulses, rather than the count between toggles (I'm using toggle mode), so in order for my speeds to be accurate I need to toggle twice as often (a.k.a. OCR value 1/2).

Furthermore, dimensional analysis confirms my algorithm to be true at least with real numbers (i.e. hand calculations). The different data types, promotions, and implicit conversions throughout the algorithm implementation introduced other challenges, but I believe I have those sorted out, at least for the range of speeds I need in this custom stepper drive class.

If there's any additional or different information I can provide, please feel free to let me know what you are specifically looking for.