use performDelay instead of spinning the run loop.

(it wouldn't have actually delayed at all before :-/)