Async read in window.go sits forever when is sent since os.Stdin does not respect read deadlines. Need to wrap the read in a channel send and handle the timeout on the receive end. The current issue is that the async read after is detected will consume the next keystroke since it hangs in the background forever.