das ist ja schon mal ne ganze Menge. Zur Fehlersuche musste du aber Teile abschalten und nur Einzelkomponenten testen.
Probleme, die ich sehe:
Python ist absolut nicht echtzeitfähig,
WLAN ist absolut nicht echtzeitfähig,
und Threads stören sich gegenseitig, wenn wichtige Threads keine höhere Priorität haben als andere, die warten können.

Also teste doch mal nur nackt WLAN in Verbindung mit der Motorsteuerung, ohne alles andere.

(ich selber kann kein Python, ich verabscheue diese "Sprache", ich verwende C(++), weil es klar ist und streng strukturiert und pthread Multithreading auch mit thread priorities erlaubt, bis hin zur Echtzeitfähigkeit.)