Improve CardThread CPU utilization by sleeping rather than yielding

Turns out that a lot of VMs ignore yield() and CardThread was spinning
a lot.  This substantially reduces CPU time by keeping track of how
frequently sending actually happens and sleeping in between.
There should be limits on freedom

Prevent sleeping longer than one NTSC field between checks.