There were / are / will be devices that support detecting hovering a finger or stylus away from the screen, so engineering-wise it's possible; it's just not included in the UX guidelines for the respective platforms.
You can use :active, which should work when you press the button. You can still move your finger and release outside the button to avoid the interaction. The only problem is the finger covering the effect.
Short-press and scroll a little, this usually starts :hover mode. You’ve probably seen it accidentally triggering previews on various video platforms.