This caused two issues, it meant that quarter of a second pauses interrupted each time step, making the phrase timeout slightly inaccurate
and most importantly, it meant that the infinite loop wasn't being slept whenever there wasn't data in the queue, which makes it keep running with no pause