I notice that the *actual* exit code I'm getting is 256. Has that changed since the OP or is there some bit-shifting going on here?
I also notice that the same exit code is generated regardless of whether the option is valid or not. Is that the behavior we desire?