Node-red-log to file

The next time it happens use another client to subscribe to '#' on the MQTT broker and see if there is an MQTT loop. Alternatively stop the MQTT broker and see if that fixes it.

However if node-red-stop has problems that sounds more like a tight loop somewhere so it is not able to respond to the close signal. If you left it a few minutes though I would expect systemd to eventually get bored and kill it off.

If killing it makes it difficult to restart then that may provide a clue. If you have to kill it then start it using node-red-start and post the log here. In fact it might be worth posting the log here even before it fails in case we can see anything suspicious.

Edit Also, before killing it run node-red-log to see what is going on.