btl/tcp: fix hang when using multiple threads

There was a hang in the tcp btl that caused a hold-and-wait scenario
when processing libevent events. The problem was due to one event holding
the event lock while waiting for the endpoint lock while another thread
was holding the endpoint lock while waiting for the event lock. The fix
is simple: drop the endpoint lock before trying to delete a libevent
event. The fix was tested with osu_latency_mt.