Ian, here is my $0.02 that you did not ask for...
I wrote a plugin for a vendor, that would take in encoder values, and do an "Adaptive"
feed rate adjustment, i.e. slow the feed by 10% if the encoders where within a following (corrective) error band, it also had a Max error that would be an estop, then it had an "Acceptable" following error band in which it did not correct. While in the corrective band, it would slow the machine, then after it got through the "Hard" part, it would then ramp back up in 10% increments back to its original speed.
This worked in theory, and in bench top testing.... BUT.......... did NOT work in real world application on my test mills. And that was due to the slow speed of the update loop in Mach3.
when machining a part that had a "Hard" spot in its material (or DOC was greater in that area),
the steps that where lost in the engine(s) loop would build up quickly, and already be past the MAX error when the plugin got around in the 1/10th loop. That was using the Para Port.
On the other machine, with an external motion card, the problem re-presented itself in a slightly different manner, in where the "buffered" moves would build up error, and again, you would be behind the MAX. Under certain conditions, like cutting "soft" material, the system did work, in where the slow down was not that much through the softer material, in that LIMITED case it would do adaptive feed........
But, again, having said the above... I only run servos on my machines, so, having read your in-depth explanation on steppers and how they react to following errors..... I suspect the results would have been even worse. The Plugin in its way would stop the machine and "catch up" the servos... but.... the part was completely non-acceptable, once you have lost those steps especially on a simple or compound curve... you can easily see the "opps" area.
The adaptive approach may, I repeat MAY work in wood since the tolerances are a lot looser, but, really only on straight lines.......curves or intricate designs I think you would see the error in the cut where the Axis lagged to much.
From my point of view, for following error adaptive correction to work correctly, or at least useable, the Hardware (motion card or device), would have to be designed with that in mind in advance. The speed needed to catch this, and do something about it would be at the hardware level, and basically it would just notify the software of what it did about it when it got around to servicing the board...
Note: I am NOT saying that it can not be done, I have not had the guts to try it at the Brain/Macro-pump level, since in my mind plugins should be more stable or at least reliable. But, I have not tried it, nor will I since testing is expensive with broken tools, or crashed axis...
My suspicion would be, that some enterprising user could take an Arduino, to read the encoders, and do the following error math/decisions and notify Mach about it, or control mach depending on what it decided to do about the current error condition(s). This could interface through a Plugin or some kind of hybrid Brains/Pump thing.... Good luck to the brave sole that tries it, and GOOD JOB if you get it to work good!!
Scott