Never gonna give you up!

If a child process receives a SIGTERM/SIGINT followed by SIGHUP, it's an indication that the parent is closing down regardless of child status, but it should finish the last job it's on before dying completely. Basically, attempt a non-blocking graceful cleanup of itself rather than needing a SIGKILL to let the parent clean itself up.
fix weird comment
default shouldWork to false so we can explicitly start
Listen for SIGCHLD to speed up the reaping process
Clean up debug message
move shouldWork check up in SIGHUP handler
Do child cleaning after stopping work
Don't attempt to clean children in the initial signal handler, it blocks additional signals from being processed
Actually detach from the parent correctly when SIGTERM/SIGHUP combo is received on child
add comment about lack of SIGHUP handling on the parent
Actually fire SIGHUP to children when parent receives the second SIGTERM
whitespace
clean up log info
Adjust comment in worker shutdown process
tweak logging for stop children process