This was a weird one to discover. http://forum.sysinternals.com/forum_posts.asp?TID=4094
killableprocess.exe kills the job by allowing the last handle to the spawned Job to close (using the job limit "JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE"). But SysInternals ProcessExplorer keeps a handle on every Job it can find, preventing the Job from closing naturally.
The fix for this would be for us to taskkill killableprocess.exe, which works fine. killableprocess could spit out its own process ID on the command line, allowing the parent process to pass it to taskkill.exe.
Fixed in rc revision 2001. Instead of trying to taskkill killableprocess, I just made killableprocess commit suicide if it received a newline on stdin.