in reply to "tee"ing my own stdout/stderr
You could try my solution here: IO::MultiHandle - Operate on multiple file handles as one
Update: But I don't know if it won't have the same SIGINT sensitivities as the other things you've tried.