Windows is not real time and thus any application running on it will never close the control loop. However, Mach can be part of a closed loop system. Some motion controllers operate in a closed loop manner with Mach. Galil, Vital System DSPMC, etc... For a servo system, the loop can be closed in three places, depending on the setup.
1. On the control itself (LunuxCNC).
2. On the motion controller.
3. On the servo drive.
It you want instantaneous feed rate override, it has to be done at the point in the system where the loop is closed. That leaves points 1 and 2, as I have never seen it implemented on point 3 (the servo drive).
Hardware based feed rate override is possible on the Galil with a pot connected to an analog input and a bit of Galil DMC programming. You change the sample period time base (TM) based on the analog value. However, if you are running servos, this also changes the PID loop sample period so you had better change the PID values to match the new time base as well (just a mathematical calculation). If you are running steppers with the Galil instead of servos, dealing with the PID values become irrelevant.
All that being said, I would not consider the Galil a hobby controller. It is more of an industrial motion controller due to its' complexity and price point. But the option is there. The higher priced controllers can usually accommodate these types of requirements. But we are talking about Hobby level machines and controllers, right? Professional features come at a price.
Threading... it needs to be done in the real time component. No encoder need be involved though. The motion profile can be, and is, calculated. The start and end point of the thread never changes. The challenge is the spindle speed. If the spindle speed could remain constant, a perfect thread could be produced with a predetermined motion profile. However, that is never the case in the real world. So the real-time component of the motion controller must monitor the speed of the spindle and change the time base in which the thread profile is executed to match. So how does a motion controller monitor the spindle speed? It can use an encoder. But a single pulse per rev is usually quite adequate. It turns out that producing a class A thread doesn't require THAT much monitoring of the spindle speed. If you have an encoder on the spindle, then use it. But it is definitely not required.
Steve