I can only speak for my setup - I'm not a pro by any stretch.
1. The motor models I chose are specifically designed to replace a stepper. they are a servo inside but externally they don't provide the same level of feedback and control as a "real" server and driver combination. Step, Direction, Enable and a multi function output are all there is.
2. I use Mach4 and a PMDX-126 so I can code the machine to do any extra things I want e-stop to do. I originally had it set to configured to clear the "enable" signal whenever the machine faulted for any reason - I was building it so I had lots of faults in the process. Clearing the "enable" lets the motor freewheel. Estop by itself on a PMDX stops the pulse train, but any pulses the motor itself has buffered will continue to run. I can't imagine that buffer equates to a lot of distance, but its there. Clearing "enable" will stop its logic immediately leaving only inertia of the drive part , not clearing it allows it to finish processing the pulse train it has already received.
3. The motor itself will fault and stop if it exceeds its torque setting which is configurable, but again, it will freewheel. If the Z axis is on its way down, that would not be helpful