pub fn poll() -> Vec<Action>
Poll for input events with a 500ms timeout. Returns accumulated actions. Batches rapid arrow presses into single moves (key draining). The 500ms timeout means ~2 wakeups/sec when idle (vs 10 at 100ms).