pues la verdad no me dan ahorita las neuronas para pensar en otra cosa
pero asi como lo planteas lo veo complicado ya q hasta donde se obligado debes de revisar si alguien esta en la consulta y esos se hace en milesimas de segundos
ahh tambien un poco mas rapido sin consultar base de datos es usando $_SESSION colocandola antes del select en uso y luego del select libre y antes del select comprobar si esta en uso