Du weißt aber, daß du damit nicht direkt die LEDs steuerst, sondern die zugehörigen Tasten?
Sowas macht sich etwas "bescheuert", wenn man mit dem PC arbeiten will und wärend der Eingabe spielt ständig jemand (dein Programm) an der Tastatur rum.
Wenn GetKeyboardState das falsche Ergebnis liefert, dann wäre es besser (sowas ist allgemein keine schlechte Idee, auch wenn es ginge) den Rückgabewert dieser
API zu prüfen und im Fehlerfall via GetLastError zu schauen was da schief läuft.
PS:
Es gab hier schon ein paar Themen, wo wirklich die LEDs gesteuert werden und nicht die Tasten.
z.B.:
keyboardled
Und wozu eigentlich ein Thread?
Dieses Intervall ließe sich doch auch sehr gut über einen einfachen Timer realisieren.