Perhaps we should redefine what a node status is.
Based on your messages, there's a need to separate static statuses from ephemeral statuses.
I'll try to define them with an example:
- static: connection status with the broker, database, etc.
- ephemeral: related to message processing
If we separate them, we can consider that ephemeral statuses are purely debugging (visually see the process) and therefore do not trigger a change in the status node. This ephemeral status will restore the initial status at the end of duration.