I'm not sure if `die` is the right way to crap out here. It might be better to refactor the type of this function so that we can `stop` with a non-normal exit reason. The question is, do we want to propagate any information to the children at this point? If there is a shutdown strategy in place (order, timeouts, etc) do we want to observe the configured policies when terminating the other children? Just crashing the supervisor process is a pretty extreme step to take.

Let me poke around in the code and see how things fit (since I've forgotten!) and we can discuss this point a bit more.