Don't control the request preemptivly

We should not take the control of the request each time we are executing it.
This also remove an extra blocking call to the manager.
make sure the manager has still the control of the socket
don't wait to cancel a request

canceling a request may take some times so do it asynchronously the local ref
is already unavailable anyway.
make sure to not leak the {error, closed} message.