Hi marcpurcell,
My first question would address of course the requirement of the two Null Objects: Would it be doable with one as well.
However, I guess you have a reason for this.
How about this, which seems to be the simplest set up.
Create the Null Rig, Parent/Child
Animate the Child with a repetition after the initial Key Frames. Time Line (F-Curve Mode), Function>Track After>Continue After. Start from the first frame.
Set up two keyframes for the parent shorter than the initial acceleration time, but lose. Do this in the opposite way, so the rotating object would stand still.
Go To Timeline (F-Curve Mode), F-Curve> Make Snapshot> Create Snapshot 1 (then Show Snapshot one. This helps to guide you, on one side of the snapshot it will be too fast and slower on the other side. See example.
From there you have to pull the last keyframe to the left and adjust the Handle so it is horizontal.
This might be counterintuitive first, but perhaps the easiest way—as you work only with one keyframe, and not try to sync two.
====
Animation is the change over time, and with that being said, the degree [º] from one frame to the next is all there is for a one axis rotation. This needs to be matched, if one stops and another takes over. BUT the key is to have keep these areas with the same interpolation. Ease in and ease out will mostlikely not overlap perfectly for the wanted equilibrium.
====
My suggestion would be based on one Null Object (the blue one in the example) and there to use just the Continue After. As in the example above, the step-ness of the curve shows the rotation-speed. In the image you see an example that the “bow” of the acceleration is below the straight line. If the bow is above the line - it would start out too fast and lower than. Just adjust the handle of the second keyframe and you see the results.
Let me know if you like to share more about your target, and perhaps we find something else…
All the best