Переработаны потоки, отвечающие за взаимодествие с сервером. Теперь все запускается и тормозится в нужном порядке. Код стал проще и понятнее.
Улучшено взаимодействие с клиентами:
1. Клиент при присоединениии получает приветствие с указанием собственного ID.
2. Все активные клиенты получают уведомление о подключении нового собеседника, также как и об отключении.
3. Наконец более-менее грамотно (для рака вроде меня) реализована работа с сокетами. По крайней мере эксепшены теперь не сыпятся. Или сыпятся там, где без них не обойтись.