I made spring loaded touch plate just a few weeks ago and it was a big improvement over fixed touchplate for me.
Before that I've been using fixed PCB touch plate connected via switch to estop input, so my machine would stop as rapid as it could when the plate was touched. Then I would isolate the plate from estop with a switch, reset Mach, and manualy enter Z offset. In that scenario feed(v) can be calculated if max overtravel(s) and acceleration(a) are known: v=sqrt(2as). Actually, i'm pretty sure that motors decelerate faster in case of e-stop, and machine position is lost by some number of steps (depending on the feed rate), but it worked OK, especially because PCB material is relatively soft.
In my example, a=2000mm/s^2, s=0.0125mm (one microstep), v=sqrt(2*2000*0.0125)=~7mm/s=420mm/min
Spring loaded brass plate is housed in POM-C case (since my machine is made of metal and it's grounded), connected to probe input, and it works on the same principle of closing electrical circuit (instead of using microswitch). Spring allows plate to travel a few mm, which allows Mach3 to decelerate (and sleep while isMoving()) when the probe signal is activated. Then the tool retracts rapid to touch position, and then retracts slowly step-by-step until electrical connection has been broken for at least second and a half. It's very acurate and I haven't broken any endmills/tips yet. I will share the script if you want, it's based on the script found on this forum.
Now, stirling got me worried about accuracy/unpredictability of trip point:
2) Perhaps worse though is that because its attempt to store the stop point may well fail, the retraction will be pretty random/un-predictable and in worst case could seriously crunch your tool tip/plate.
so I'll make rapid retract conditional in respect to current tool position.