A) It could be script that is blocking user from being logged out properly
B) Unregistered version of io might have similar ghosts, as it does not have any idle timeouts (however, in this case user can be kicked)
C) Dodgy firewall software/NIC drivers (Remove firewall, if any & update drivers)
D) Not enough IO threads to serve current users could cause connection to block infnitely (In current core one IO thread can serve up-to 63simultanous connections.. upcoming core removes this limit & loads between threads are balanced equally)
.. There are some other possible reason for this as well ..
Does user get hello message from server?