Just for fun I have been experimenting with dual Z endstop sensors, a "normal" one and a "early warning" one.
My current two printers have moving beds on the Z axis and the beds have quite a bit of mass. To avoid possibly slamming into the endstop switch (or end of travel) and possibly causing damage I have tended, in the past, to home at a "safe" speed.
But when I noticed that in firmware 203 that you can specify which physical endstop input to use it occurred to me that it might be possible to change the active endstop input while homing. Short answer - it is.
So I installed two endstop sensors about 30mm apart. Just to be safe, for this test, I used IR sensors which involved no physical contact. I fit a "beam break blade" to the bed that spanned the 30mm so both sensors, when homed, would be activated.
Homing consists of selecting the lower of the IR sensors and moving at a higher than "safe" rate until that sensor is activated. The bed does indeed come to an abrupt and somewhat startling halt.
Now the upper IR sensor is selected and the "normal" home operation is performed at a nice safe rate and the actual home operation is completed.
Now starting homing when the sensors are already activated is a bit different. The lower sensor is selected AND inverted so it is possible for a "pre homing" command to move DOWN, away from home, until the lower sensor is no longer activated. Then the two "normal" homing commands are issued.
When the lower sensor is already cleared the "pre homing" command doesn't have any effect so there is no downward movement at all.
The same could be done with micro-switches with a somewhat different physical arrangement.
So for the effort of adding an extra endstop sensor and setting them up so they function as described I get high speed Z homing with no wasted motion.
Now I need to see what the long term reliability of this approach is.