Creo que me he dado cuenta de esto. La respuesta radica en el hecho de que el multiprocesamiento en Python es compartido, nada, por lo que se copia todo el espacio de memoria, funciones y todo. Por lo tanto, para cada proceso, aunque el pid sea diferente, los espacios de memoria son copias entre sí y la dirección de la conexión dentro del espacio de memoria termina siendo la misma. La misma razón es por la que declarar un grupo de conexiones global como lo hice inicialmente fue inútil, cada proceso terminó con su propio grupo de conexiones con solo 1 conexión activa a la vez.