Hast du schonmal andere Werte für das Msleep probiert? Ich weiss noch aus der Zeit, als ich mehr mit dem Asuro gemacht hab, dass die Asuro Sleep Funktionen manchmal Probleme gemacht haben (in manchen Fällen war die Angabe nicht Millisekunden, sondern Sekunden). Gib einfach mal 1 als Parameter für die Msleep funktion ein, um die Länge zu testen.

Die andere Möglichkeit ist, dass es an deiner IF-Abfrage hängt. Hast du mal getestet, was die PollSwitch-Funktion so ausgibt? Wenn das Ergebnis immer größer 0 ist, wird der else-Teil nie erreicht.