Semi-Update. I'm currently working on the input again, and I'm seeing that Unity does not return what keys are being pressed, but you have to check if the key you want is being pressed.
This means that anything "waiting" for response has to be actively polling keys rather than feeding it the key that's been pressed.
It seems subtle, but that does make the code trickier.