Rich:
Thanks to your testing I think I have a grasp of whats going on. What to do about it is more complex.
I'm not as sure as to why the variable lead.. though its pretty close at this point, but I highly suspect
whats going on is the RPM is locking in at variosu values at times. This can be caused by many things.
Mach3 when it gets a threading command, sets up the pass using the current spindle RPM, a split second later
the driver see's this command and "locks in" the current spindle RPM for the entire pass, correcting if the RPM changes
from the "locked" rpm.
So one of two things is causing that intermittant bad pass. The RPM is wrong at some point in the process. On the versions
your testing the correction is turned off, that helps narrow this down. It means for sure the RPM is different by a percentage
from one pass to another. If the locked in RPM is different from the RPM that Mach3 used to calcuate the pass, youll get a
leading or decreasing pitch on that pass. We can see a .001 or .003 or .005 pitch as normal, but then on a particular pass the
RPM gets locked at a wrong RPM.
I have a few things to check inthe code now.. it could be the planner is processing the next threading pass before the first is done, thus the rpm
could be lower due to load when the next thread command is processed. I need to ensure it locks out the next runs processing till the first one is done.
You can stop testing for a bit while I digest the numbers and see what I can do to tighten this up. Hopefully , thats all it is,
otherwise it means the RPM is wrong occasionally for some reason.. and that may be arder t find.

I suspect youll find even the earlier version do as this report suggests, specially if the spindle is cold. I have heard runnign it for a few minutes till stable
helps it be stable through the run.
Thx
Art