If the CNC controller is to remain unmodified, it sounds like a job for a MCU with input capture to measure the input PWM pulse width and output compare to generate a jitter-free servo pulse, with the main loop running software mapping between the input and output pulse widths. Any Microchip PIC with two CCP or ECCP modules could do it fairly easily, and I suspect that many ATmega AVRs could also handle it.
Another option - if there's open source firmware for the ESC you are planning to use, you could probably compile a version to accept the 1KHz PWM control signal directly.
However if you don't have the embedded development background and a suitable toolchain you are already familiar with, sticking to the analog OPAMP based approach may be preferable. The analog solution is helped by the fact you don't need a great deal of accuracy - a few percent error in the spindle speed isn't an issue as long as it remains reasonably stable once set.