Sorry, guys. For some reason I never got a notification about any replies to this.
Just to clarify what I was talking about, the behavior I was claiming was a bug was not the lack of resumption of waiting for the heater. My work around would fix that particular problem.
The bug was that the system resumes on the gcode statement after the one that was executing when the fault happened. That means, in practice, a gcode is going to get skipped. In my example case, it was an M190, but any command that failed during execution would be skipped.
In programming parlance, it'd be like a return-from-interrupt incorrectly incrementing the program counter when pulling it back off the stack, causing an instruction to be skipped. Sure, you could say "hey, I'll just add the instruction that's being skipped into my ISR", but that's not really addressing the issue.