adjustments to avoid zombie subprocesses
be explicit about the pid, otherwise empirically it appears to send signal to process group and/or parent
cleanup output
spawn/kill workers based on expected not actual, keep track of terminating pids
removing threaded workers, cleanup
checkpoint
integration checkpoint - mostly functional minus tenant delete