Send EXIT events more consistently from daemons
Summary:
Ref T12298. When we bin/phd restart daemons, we currently may miss sending EXIT events for daemons which aren't actively running at the time, since the EXIT event only happens when the subprocess exits, not if we tear down a waiting/sleeping/hibernating daemon.
The most common case of this is hibernating daemons. A less common case is daemons which have exited because of an error (usually, taskmasters).
In these cases, the web UI doesn't get cleaned up properly. Instead, send EXIT from any kind of teardown so we knock daemons out of the web UI more often.
Test Plan: Ran bin/phd restart a bunch, saw fewer hanging daemons in the web UI at /daemon/.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T12298
Differential Revision: https://secure.phabricator.com/D17553