Here we go. It could be the limit switch going bad or loose or dirty, or it could be loose, tight, or worn rollers (see below). Maybe there is debri in the v-grooves of the extruded rails. It could be a worn lead screw and or lead screw bushing that the lead screw is threaded through at the gantry, the stepper could be getting worn out (just like a servo), the lead screw coupler at the Z axis stepper could be loose or broken, the bed spring tension, the hot end assemply could be loose, etc.
Had a crash lately? Some Z axis lead screw couplers are designed to break to keep worse things from happening in the event of a crash. I have had 6 FDM printers. They all had a different coupler. Also check the two set screws here. Make sure they are tight.
Is your Z axis lead screw worn? What about the threaded bushing it goes through that lifts the Z axis (bushing at the gantry)? Is everything there tight? These machines aren't really built for precision, and an Acme threaded rod is nowhere near as accurate as a true ball screw. There will be a tad bit of play there. Which brings us to the next thing to check.
Are all your rollers snug? You should not be able to spin any of them freely, but if you hold the axis from moving (hold the belts or lead screw) you should be able to spin the rollers with a just a little forcefullness. You don't want them too tight or two loose because there definitely will likely be a little play in the lead screw bushing. Any extra tightness here will have your Z axis hanging when Z tries to lower. The lead screw will turn, and your rollers will prevent the head from moving down until the play is consumed. You want your gantry to be resting on the threads of the lead screw, rather than being pulled down by the threaded rod turning, if that makes sense. If it were a true ball screw, you wouldn't have this play, and roller tightness would not be an issue.
If you had a dial indicator you could test this by giving your printer a +Z command, zero the indicator, then give it is -Z command. Just move it down in the control to get one full revolution on your indicator and see if it rotates back to zero on the dial. So if your indicator has 1mm travel at one full revolution, move your Z negative 1mm. Read the indicator. If it doesn't quite make it, you likely have your rollers too tight. Or maybe debris in the v-grooves of your extrusions is causing issues.
The Ender 3 V2 - does that have dual Z axis lead screws and steppers?
Check those issues and report back.
Dial indicator setup that would work great:
https://a.co/d/be86UuN
(Clamp down low on the vertical rsil, put indicator on gantry).
Or you could come up with something even better if you buy individual items.
https://a.co/d/13JBtr5
https://a.co/d/8oIrhqI