Paul,
I spent a little bit of time today, seeing if I could write a tODE script that would handle SIGABORT and while I can write the smalltalk code, for a "keepalive" script, terminating the script is bit awkward (hard break is the only option to interrupt a script ... and I can't do anything intelligent in Smalltalk to handle a hard break) ... the next option would be to create a builtin client-side command, where we could arrange to handle SIGABORTs in the Pharo client, but to do that cleanly we'd have to arrange to have a transaction mutex so that in the event you are explicitly running a long running process, the SIGABORT process can be prevented from doing an abort at an inopportune time :) ...
My "keepalive" script was going to be something that you would either run before leaving the idle session, or tack onto a long running command line, that would run AFTER the long running process finished (the use case I assume you are most interested in) ... I think that the "keepalive" script I've written would fill the bill, but you'd have to manually run a "cleanupAfterKeepalive" script ... If you would find that useful, I could arrange to write the cleanup script and give you the keepalive script :)
Dale