Stick a 'Delay' of some length in your main loop (before the 'Flip', for example). I went as high as a "Delay 500" and noticed no apparent reduction in performance of your program.
This reduced the CPU usage to about 2% on my rig.
This reduced the CPU usage to about 2% on my rig.