Uses new pyb.micros() and hence no longer ties up timer 2.
Threads may wait for unlimited periods using "yield from wait()"