java: Fix locking for disconnect probe thread detecting a socket error

In this case the disconnect probe thread exits but the callback thread
will still try to shut it down. This is done by a put to a synchronous
queue but because the disconnect probe thread doen't try to poll from
this queue anymore the put blocks forever. Because this put is done
while the socket mutex is locked it'll stay locked and any other thread
will wait forever for the socket mutex.

The special behavior of a SynchronousQueue is not required in this case.
Using a LinkedBlockingQueue fixes the locking problem.