The old method of the update loop used a lot of cpu power as it kept re-cycling through a while test until enough time elapsed.
using time.sleep() I can suspend the thread until the required time has passed, and update again.
The CPU load at idle is changed now from ~50% to ~0%, the way it should be. This should hopefully free up resources and make the sockets much faster/stable.