Currently, a health check is performed at startup which check whether all essential services have been started successfully. If not, the program exits. This was fine originally, but with the addition of background tasks, a service can now fail at runtime and change its status.
A service and the Service Manager should provide a way to react to this "from the outside" using some kind of event system.