A while ago I implemented an “instant pause” function Instant Pause Function
I offered it as a pull request but it didn’t get merged into Marlin for over a year, and then for some reason just in the last few days thinkyhead decided to merge it as an option into Marlin bugfix-2.0.x. I’m not sure why.
Note: my instant pause feature is intended as pause/resume and not instant kill. If you just want to stop the program instantly and you don’t need to resume, then the emergency parser is the easier way to go.