Any reason why you are doing `terminate; return true` rather than `after(0) { signal(:shutdown) }` as before?  This code is very hard to test so I'm really paranoid about breaking some edge case.