A mi me pasa lo mismo, y detener el bucle es complicado...pero yo por ejemplo ya uso Index para cada una de las conexiones.
Yo creo k lo k hace falta son tres winsocks...uno para subir y bajar archivos, otro para las capturas de pantalla (muchas veces se tiene siempre activada la captura de pantalla mientras se hacen otras cosas) y otro ws para enviar comandos...en el caso del keylogger es bastante facil pues no se envía mucha información, asi k kon poner una palabra (comando) k lo identifike por ejemplo así:
keylogger|aki la info del keyloger ya estaría...
Tambien puede k te pase k al enviar un comando y aun estar procesandose si envias otro se te junten o cualkiera cosa k produzca errores...eso es facil de arrglar con un interruptor k desactive los botones asta k el server envie confirmación....
Weno, yo voy a provar a integrarle tres ws a mi proyecto...voy a cojer indices grandes (partir de 200 por ejemplo) para k no interfieran con los indexs de las conexiones.
Saludos