Keep the dispatcher inhabitants count balanced. See #2919

So I finally found the root cause of the lingering dispatchers to be that we don't register all actors that we unregister from the dispatcher, leading to shutdown to run early sometimes and not at all at other times.

- [ ] forward port to master