> they'd have to insert a lot of nanosleep() calls everywhere

The Lisaem Emulator indeed does this. Lisa is a pretty complex system with an asynchronous bus which requires cycle-accurate simulation to make the original software work. I spend some time to experiment with simpler (and faster) emulators like QEMU, but this would only work with significant changes to all drivers (the Lisa source code was published by the CHM). So for me personally, the re-implementation of the Lisa GUI as demonstrated is a very wellcome solution to appreciate the innovations Lisa brought us without all the hassles of a cycle accurate emulator.