I use the TOTP option in KeePassXC and KeePassDX to handle 2FA duties. I backup the encrypted file to my Nextcloud. If you self host Nextcloud or something similar this is a viable option.
I use Aegis, which automatically backs up with each change to the database to a folder that gets synced to a couple of different computers via syncthing.
For backup codes, I have a separate keypass database that's backed up to a couple of places. I thought about using Bitwarden for this backup, but having my 2FA backups in the same place as my passwords kinda defeated the point, IMO.
I use Bitwarden (I know opinions are split when it comes to passwords and 2FA being in separate apps). But I like the convenience of it all being in one platform.
I also like Raivo, you can import/export them too.
I used Bitwarden for a while because I liked having everything on one app. A bug with their service made me spent a day without my 2FA codes, and if your subscription fails to renew by accident they also lock the codes. Noped right out of there.
I now use Google Authenticator. Nothing special, not going to be the favorite comment on a privacy community... But it works, is free, syncs across devices, is guaranteed to work well on Android. Super simple.