@dc42 so you would prefer to make the behavior different for direct and WDC? Why?
Just fix the firmware code so that it says something like:
IF heater is in FAULT state, do nothing. ; Prevents start up of machine in FAULT.
IF heater is in FAULT state, and M564 S1 H0 sent, then unlock. ; Allows movement for servicing.
My point in giving the details was not to highlight function diffrences just observations. However the underlying mechanism in the code, in the firmware is the same regardless of the subset performing operational commands. Be it a function of WDC or USB. The part of the code in error is at the core of the firmware, the actual machine controller code that listens for an instruction.
My point is that regardless of where the instruction is coming from the controller should be saying:
Hey Operator! We have a problem! You need to fix the Heater before we can continue!