socket.endpoint() returns empty string
Deadlock in socket.cancel() because of recursive lock of non-recursive mutex
test_socket_monitor refactored to don't have cyclic owning. Also more assertions added