Otherwise the process won't die? Can alternatively hook up the child threads to poll the should die boolean, but then they'd need to wake up a lot more often. Doesn't really make much difference impl wise because aborting a transaction is clean. I can certainly be convinced otherwise, though :)
The big thing we'll probably want to change is to track a "last GC'd time to ensure short lived calls don't mean we'll never GC"