You probably already know this, but even if it catches a "die" 100% of the time, depending on it for more than a "nice to have, but unnecessary" feature is unwise. It obviously will not catch exit(), uncatchable signals, power failures, nor keep some module you are "use"ing from setting it to something else. I'm not sure I call that "reliable", but YMMV.