No. What is happening is that there is no need to debounce the leading edge of the button press.
Your code #30 works perfectly with a shortPressMin of 1 ms. Without changing to micros(), this is the most rapid response that code will achieve.
The code in #9 will report a short press on the smallest switch press possible. On the trailing edge, no matter how soon after the leading edge. Subject, of course time between read() calls.
Your need to differentiate between long and short presses means you cannot code the fastest response possible, reporting on the very first contact. As in #9's pressed or button went down message. But you can certainly report once the switch is again seen open.
If all you want is a simple button press, and response a percussionist might appreciate you having provided, there is no need to debounce before reporting a closure. Buttons do not randomly close for brief times that need to be debounced.
Buttons do not randomly close for brief times that need to be debounced.
Anyone whose buttons do is buying even cheaper buttons then I, or using them in circumstances they were not designed for, like in a rocket ship at take off where forces make switches chatter or something.
a7