Hey Yero!
That's one option, the other one, simpler, is to add a RequestListener to your MUX. The RequestListener will receive all requests coming to the MUX that do not match an inflight transaction.
To give an example, if you send a 200, the MUX is waiting for the response of the 210 (matching the MUX key, for example, field 41 and 11).
If there's a 800 coming, the MUX is not waiting for it, so it will send it to the RequestListener (if configured for the MUX).
Something worth noting is that if the former 210 comes late, it will also be handed to the RequestListener, so you need to be prepared for those late responses (you can use ISOMsg.isRquestMTI() in order to tell apart requests from responses).