Hi Chris,
I think your experiment is doing exactly what it is being told (as computer usually do
!). I don't know the nature of your EyeTracker.drifCorrection function, but it appears to me that Vizard is waiting for something that never happens. Yield should only be used for functions that return something to yield for. My guess is that your function does not return a yieldable object, so Vizard will be stuck there. Just deleting yield in front of you EyeTracker.driftCorrection function might do the trick.
By the way, the viztask.schedule function only needs at least one yield statement. You have quite a few yield statements in your function, so beware that those functions are yieldable
!