if I aggressively block each offender in my logs permanently, then the next person assigned this IP who may be a legitimate user will be unable to access my site.
temp bans exist for this reason. You can use something like fail2ban for it, or that may be overkill for your purposes, but any mechanism that blocks the IP address for a short amount of time will work. My f2b blocks spammers' IP addresses for a day, and I don't see repeat bans which means the spammers aren't coming back on the same IP address, so the short ban works to stop a given spam attack.
