Fixing EmptyStackException

As the ThreadLocal was not being cleared after execution in the
instrumented executor a subsequent task without a span would attempt to
close an already closed span.

This change ensures the ThreadLocal is cleared and that we don't wrap
tasks unless there is a span at the time the task is submitted.