You were right. With the debugging tips from Alex Mishustin I was able
to determine that I had rebuilt 3.9 while fail2ban was using 3.8. I did
what I SHOULD have done in the first place and did an emerge -DN
fail2ban. That caused portage to see that Python 3.8 needed to be
rebuilt, and it did so. Now fail2ban is able to access the sqlite database.
Thanks!