Es macht nur etwas anderes als du haben willst.
Die höhere Komplexität liegt meiner Meinung nach nicht in der verwendeten Sprache, sondern darin dass parallel zum Blinken und den damit verbundenen Wartezeiten ständig die Taste abgefragt werden muss. Schließlich will man den Blinkvorgang möglichst verzögerungsfrei abbrechen.
Das schafft der C64 mit 1 MHz und mit seinem BASIC quasi verzögerungsfrei.
Wenn der Arduino mit einem LED-Blinken und Tasten abfragen schon "zeitkritisch überfordert" sein sollte, dann würde ich den nicht mal geschenkt anfassen.
Nun ja, was Retro-Rentner möchte ist eine Blinkfrequenz von 1 Hz (500ms an, 500ms aus), das Basic-Programm blinkt einfach so schnell es kann.
Der Arduino ist nicht etwa zu langsam, sondern viel zu schnell, so dass man das An- und Abschalten sofort hintereinander gar nicht als Blinken wahrnehmen würde, geschweige denn ein Blinken in der gewünschten Frequenz. Daher ist es notwendig irgendwie geartete Delays einzubauen, während dieser natürlich fortwährend die Taste abgefragt werden muss. Das müsste das C64-Programm auch tun, tut es aber nicht.