That would mean that we give timeout priority over external messages. Consider the case that a sound buffer from the engine has just arrived and timeout is 0. I would rather output the sound samples from player than a buffer of silence.
The state machine often sets m_extTimeout to 0. Doing this without a state change and ignoring signals from outside would make this hang. The outer system has no chance to reset then.

Your point is valid too but given the arguments above I would keep it as is.