Per quanto riguarda la velocità le due implementazioni sono pressochè identiche in quanto l'implementazione Python non è altro che un binding al codice originale che è scritto in C.
Se poi ci aggiungi il fatto che la parte "socket" rappresenta uno dei classici colli di bottiglia di un'applicazione ti renderai conto che parlare di "velocità" in questo caso non ha senso.
Per "controllo degli eventi" non so che intendi.
Pressochè tutto ciò che puoi fare con i socket da C lo puoi fare con i socket da Python, salvo qualche operazione di basso livello dei socket RAW che comunque non andresti quasi sicuramente ad utilizzare.
In sostanza le due implementazioni sono identiche, salvo che utilizzando Python, ovviamente, il tutto è estremamente più semplice e anzichè scrivere 50 righe di codice ne scrivi soltanto 5.