I like @dreid idea of having it as `SupervisorService`. This way, twistd takes care of shutting down. The shutting down can be time consuming since `stopService` returns a `Deferred`.