OK, this follow-up to to show that my exit-0-on-exception was not a problem with Exception::Class nor die. I was getting exit values of 0 for 3 different reasons. I hunted them all down, and it was all my fault.
1. This one is embarassing. When I was testing my code, firing from the hip on the command line, you might say, I did this: