exit when child has exited, not earlier (mh)

With this little addition, the supervisor won't exit until the child process has really exited.

I need this feature because my app has a graceful shutdown.

Already tested it on my machine and works well. Also added few missing semicolons.
In those situations, wouldn't the best course of action be to leave the existing listeners alone? If the managed process has an exit handler in place to do graceful shutdown stuff, us removing it before killing the process seems like it would lead to bad things. I guess I'm still have trouble understanding in what situation we'd encounter an actual deadlock.