Fix bug with async plugins

Apparently getchar(0) will return KE_EVENT forever if a plugin is doing work in the background. Plugins that do this are rare, but hitting this really sucks for users. Also, these sorts of plugins will become more prevalent if Neovim grows in adoption.