Move delay logic into sleep function:

* removes need for lots of extra threads
* moves work into sleep time, reducing conflict with synth trigger logic