Fred,
Fail2Ban can be configured in many ways.
Usually an IP is blocked for a number of attempts in a given timespan and it should be unblocked after a fixed, configurable, number of efforts. In my case 5 in 1 minute.
But it seems the IP's are held in the database after that: that makes sense if the same ip or block is a recurring visitor, I use fail2ban myself.
This behavior is in principle correct, although the offending IP or range should be removed after a week or so without offenses. If I remember well, that can be also configured (but my servers currently run low to medium traffic).
Recurring offenders can be blocked permanently, although blocking a sub-range can cause problems to some users in the same block, same hoster, and that is a real world scenario.
Cloudflare has a free plan, but there are concerns about Cloudflare.
But fail2ban alone is not the holy grail, and configuring a webserver(s) as a reverse proxy is also not always a good idea, Nitorami.
Although I also run a reverse proxy to keep my servers sane, mostly a bunch of Raspberry Pi's running nature observation camera's, in my case at the cost of high connection rates..(i.e.: server sane, clients not happy with higher traffic).
Better to use the "Am I human" solution but without the complex puzzles.