Moves ensure block to end of processing during rack middleware

In sinatra based applications I have been missing the reported context. Moving the ensure block to the end of the call method seems to fix this.

I am unsure of how to test this in the rspec tests or I would have provided a demonstrable test. If you can provide guidance I'd be happy to update the pull request to include tests.