My fork of the Duet firmware at [
github.com] implements this. A Pause command received via the web interface pauses any existing "wait" command such as M109 and M116. If you restart the print, the same command is restarted. If you cancel the print, it is cancelled.
Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod
Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].