If the mower encounters an error, it stops and does nothing until the controller is rebooted.
I suggest introducing a new state - ERROR, so that the main loop may continue running. That way, the display or - if applicable - mqtt will continue to update. It would also allow for continuing normal operation after the error condition has been rectified - through manual intervention and pushing a button, or via a serial comand, for example.