To do this optimally you need a buffer of input events with hardware time-stamps.
I was hoping that DirectInput would evolve towards that but it was abandoned and we're back to sucking messages from the pump.
That at least provides an ordered list of events but without the time-stamps you cannot even implement something as simple as pulling back the plunger for a pinball game accurately.
You get quantized to your polling rate and experience jitter corresponding to your input-stack and thread stability.
You could compensate for this by introducing the uncertainty of your input into your hit detection.
When you receive an event you know it happened between between 'just now' and one polling period ago which gives you a delta-time.
Humans do not act "at 5Hz".
I can push a button for less than 10 ms and routinely demonstrate how HMI's cannot handle button presses that quick (and we show on an oscilloscope that the button was indeed pressed for 7~12 ms).
60 Hz vs. 120 Hz makes a notable difference for FPS games and it's probably due to the triple-buffering.
3 x 1/60 -> 50 ms. That's an eternity.