OK FOLKS,
Here it is and if you can manualy vary spindle speed the you can duplicate it.
The threading cycle has been changed from before in how it compensates for spindle
slow down. It's also a matter of degree of slowdown.
Generate the Gcode with M76 and have all the cuts .001" deep, 1 to 2" of thread, and run at 100 rpm so you can see what is happening. My dry test had 80 passes.This makes for easier monitoring.
As it should each time a new pass is made the X will move .001" for the next cut. All is good.

At pass
#10 I varied the speed 70%. I am using the SS so you can't see speed change but you can see feed rate change. The DRO's "seem" to go bonkers......but i don't think so......

The program see's that thread pass as out of the norm in which it can correct, so it takes you back to starting X DRO and does an air cut down to the X value at the bad pass, so it is doing a "tapered" move.

Maybe what it has done or is doing is recalibrating / reseting the buffer for the next pass. But it needs some good data to work with.
The next axis move will now go to the next X pass value and that value is correct, just .001 deepr than the past bad one. Let it continue for 10 passes and each one will be correct.

I duplicated this 8 times in the 80 passes.
Now if you stop the spindle, and stop time seems a little time dependant on how it will behave, the Z will just finish the pass ....
the thread would be history in real life .......and the threading cycles will stop. Mach has lost the index...
it has no basis on how to continue.
So either the threading cycle is ******************x'd up or the way it deals with spindle slow down has been changed.

RICH
Now I have been convinced, but the mechanical stuff still induces it.
....... ART, Brian please clarify what the proper interpretation of the threading cycle is........!