Adopt a time based logic for cursor blinking and wait for event when idle with a timeout equal to blink remaining time.