Nachtrag:
evtl. könntest du die aktuelle Zeit auslesen und dann per Schleife ständig die Zeit abfragen und nach 500ms die Schleife unterbrechen.
Wie zuverlässig das ist, müsstest du prüfen, da die Schleife ja auch Zeit braucht und damit immer eine Differenz von mehreren Millisekundwn entsteht.