Jeff,
I looked over your Arduino sketch - it will work mostly OK, except the probe and tachometer.
When the probe triggers, you need to grab the encoder values as soon as possible. With your algorithm the probe will be very inaccurate. Since the table will be moving, any delta in time will result in delta in position. It might be small, but let's say you are moving the axis at 5mm per second. I don't see where "reportPeriod" so I don't know what your refresh rate it, but let's say you get around 50Hz, at 5mm per second that is 0.1mm in the worst case scenario before you grab the position for the probe.
Tachometer code (the way you have it written) is very dangerous. You are doing stuff in the ISR and there is no limit on how fast you can handle pulses. With a high-resolution disk and some noise on the line you can swamp the CPU and crash the chip. ESP has hardware for this stuff that will count pulses off the main CPU. A "standard" approach is to have some threshold after which you switch the counter to sampling mode (i.e. don't run it continuous when high pulse rate is detected).
In general, this sort of thing is usually done with multiple threads. ESP32 has two CPU cores and all the hardware to run a preemptive RTOS. This will give you much better control over timing than a "busy loop", lower the current draw (which is a concern, since you are using the on-board V-Regulator), etc.
As far as the circuit - connecting anything to ESP32 without protection is a bad idea, and running glass scales from 3.5V supply is even worse idea. DRO is a precision measurement instrument, so it has to be accurate and reliable. Your code doesn't have any error correction (besides the very basic state machine in the Arduino encoder library), and the circuit doesn't have any protection agains noise, voltage spikes etc. On top of that, 3.5V is below the spec for 5V scales, so they will be more flaky and susceptible to noise. Chinese scales output notoriously noisy signal. In my Glass/Magnetic scales adapter I use chips that can comfortably handle input from -4V to 8V (for 5V nominal scales) and have built in series current limiting resistors. That is probably a bare minimum I'd want in a DRO. Even the DIY circuit I posted for ESP32 is a compromise (AM26LV32IDR doesn't come in TH package, so it's not a good DIY option). It can take one unlucky motor start that creates a decent voltage drop in a ground loop to burn out the input pins.
If you use a mosfet voltage shifter or a resistor divider, you will mitigate the spikes (but not the noise). It's OK to use those with my pre-made boards because there are Schmitt triggers before ESP32 that will deal with line noise to some degree. In reality the cost of the 74HC14 Schmitt triggers is not that high (a few USD with shipping). If the DRO glitches in the middle of a job and looses it's position, the cost of scrapped meta (and the effort you already put into it) will probably be higher.
Hope this helps
Yuriy