Expose after hooks not executing after test step failure

After hooks are not executing when there is a failure in one of the previous
test steps in a test case. This means that nessarry test clean up is not run.

For example, the wire protocol scenarios in cucumber start a `TCPServer` bound
to a port that is not cleaned up at the end. The next tests are not able to
start a new server due to the port already being taken since the server for the
previous test was never cleaned up.

This commit exsposes the issue with a test. I am not sure how best to fix this.