Befehle echt synchron ausführen kann der AVR nicht, da er nur eine Prozessoreinheit hat. Das heist du musst versuchen deinen Code so zu strukturieren, dass der AVR verschiedenste Aufgaben direkt hintereinander ausführt. Das ist dann zwar immer noch nicht echt synchron, kommt aber fast hin...

Wait-Befehle sollte man sowieso nur mit Bedacht einsetzen, da der AVR in dieser Zeit wirklich stillsteht, das heist er macht in dieser Zeit nichts, aber auch gar nichts anderes!

Wenn du feste zeitliche Routinen einbauen willst, also zum Beispiel das LED-blinken, nimmst du Timer mit Interrupts. Dann handelt dein AVR ganz normal dein Programm ab und jedes mal wenn der Timer überlauft springt er aus dem Programm, lässt deine LED aufblinken und springt sofort wieder an die Stelle im Code wo er zuletzt war.

Schau also mal im Wiki unter Timer