A tach on the spindle can be handy if you are running software for things like rigid tapping or turning threads on a CNC lathe, but for general milling real time feedback isn't really necessary. A hand held optical tach and a white paint marker is all you really need. Its not going to vary once its set. On a CNC mill you would use a breakout board with a speed controller of some type. Whatever your VFD will accept. Usually 0-10VDC signal voltage. Then you adjust as needed so you are fairly close at any commanded RPM. On my Hurco motor it had a cooling fan motor inside the main spindle motor housing, and it was rated for 3hz to 120hz which was 96 RPM to 3600 RPM. I programmed those limits into the VFD. I was never dead on for RPM, but I had a couple sweet spots.

An induction motor does a fair job of self correcting for speed under load, by drawing more current. You will get consistent repeatable speeds based on the frequency you feed it. They can experience motor slippage, but its only really significant if you are loading your motor near its max at a particular speed.

If you are using Mach3 you can set a max speed for each pulley. The way to find that max speed is to put the spindle in that gear, and feed the motor the maximum frequency you intend to, and then read the speed with your hand held tach. Enter that number in Mach 3 for that pulley number.

Most quality 3 phase motors can handle from half speed to about double speed. An inverter duty motor may be able to handle a wider range, but probably not much slower unless it has an independent cooling fan since it will not self cool at slower speeds. Remember at slower speeds it will have less torque and less power. Its why big VMCs have 15-30HP motors. So they still have decent power at low speeds. A Chinese high speed spindle motor for example likes 8,000 RPM to 18,000 RPM. Some may say 0-24,000, but 24,000 is really fast for the bearings, and it won't have any torque at all at slower speeds.