dispatch_connection: remove write lock for removing connection

Requiring a writelock requires that all readers are blocked, this means
when we often have to obtain such lock, we block all dispatchers in
doing their work.  With many short-lived connections (like we do and
want) we get many connection ends, and thus we get a tremendous amount
of blocks causing the service to stall for many seconds sometimes.