Use exec for cleanup error handler

This avoids an apparent error where Node will lose stack traces on rethrow. Downside is this that exceptions in cleanup will trigger the duplicate response throw, but this case will still terminate the process and will include the full stack trace which the uncaught handler does not.

See https://github.com/joyent/node/issues/8012