Executes and shepherds the execution of an Execution instance.
The shepherd will wrap the Execution instance into a Future object
which can be monitored for exceptions. If any are encountered,
two things will happen. First, the user thread will be returned and
the resulting exception will bubble up. Second, the execution thread
will attempt to do a graceful stop of all running SQL statements and
release all other resources gracefully in the background.