(stable) Fix an issue where daemons can stick in a pool
Ref T12331. Root problem is the unset($daemon) just unsets a key in a local variable, rather than actually discarding the daemon.
Add some logging to make this more clear and clean up some %d vs %s stuff.
- Ran a pool with bin/phd debug task --pool N, let it scale up, let it scale down, used bin/worker flood to add more tasks.
- Before patch, the ghost daemons took up the slots in the pool.
- After patch, the ghost daemons got removed properly and were replaced with fresh daemons.
Reviewed By: chad
Maniphest Tasks: T12331
Differential Revision: https://secure.phabricator.com/D17433