What's your framerate like when it becomes unresponsive? Is it maybe lower than when it's more responsive?
You are querying the keyboard state once every frame. A keypress will only be recognized, if the key is down, at the exact moment the keyboard state is queried. When your framerate is low, the keyboard state is queried less often, so there's a higher chance of missing a keystroke, especially when it's very short. One way to deal with that situation, is to make sure your framerate is high. I know, easier said than done.
The standard keyboard input method is not ideal for text input for example. MonoGame offers a different method, that's mainly intended for text input. This method does not have the problem of missing keystrokes.
I think it would be nice if the standard input method also behaved like that, meaning that it never misses a keystroke completely. I don't know how hard that would be to implement. The same goes for mouse clicks and controller input.