Die with the correct exit status.

Also fix child functions returning false being confused with dying.

Fixes the problems introduced by #8.