Ensure exit code is propagated.

If `stop` raises and rescues an exception, $! becomes nil. Seemingly impossible
to reproduce in a unit test. For more information, see
https://github.com/teampoltergeist/poltergeist/issues/497

Fixes #497.