while ((($SERVING=0)||1) && $CONTINUE && FCGI::accept() > 0) {
.....
}
with the signal handler being:
$SIG{'TERM'} = sub {
if ($SERVING) { $CONTINUE = 0; } else { exit 0; }
};
It's not beautiful, but it works finally, and it's late, and I'm happy.
So yeah... the backhand stuff is all working now. you can look at its status page here, or the apache status page here.