@Wellington the best solution we can offer right now is to use M581 T1 to trigger a pause instead of an emergency stop, and if the time to pause is too long then enable segmentation using M669.
In firmware 3.6 we plan to support a CNC feature called Feed Hold, which I think would meet your requirement.