Every account I have setup with TOTP I also make sure to print out the recovery codes and put them in a safe, and use them if my device is ever destroyed. When I switch phones (which for me happens maybe once every 2-3 years at most), I go through the shitty process of transferring the TOTP codes over to the new device, but it doesn't really take all that long (it took me an hour to do it for about a dozen accounts last time I did it), and I'd much rather not have any of it uploaded anywhere.
You can print out the QR code or save that somehow during setup and use that to setup TOTP codes on other devices (or the same TOTP on multiple devices), but I tend not to do that as recovery codes work just as well, and they notify you if they are used (unlike a TOTP setup QR code). I did have to store the QR code for one account that doesn't provide recovery codes, but it's overall not that much extra work.
As a bonus, the backup is just an encrypted sqlite DB (with dirt-simple schema), so you're not tied to some inscrutable proprietary format, and can easily extract the tokens if you want to use a different app/service.
Means I don't have to worry about phone upgrades and such, and if the Yubikey were to stop working I still have it on my phone
Authy, from what I understand, requires a phone number as backup, meaning it could be compromised by the same method
Google authenticator can't be backedup, which is royally annoying when you change/lose devices
Lastpass has some security issues, and one well known comment here has recommended no one use it.
I heard someone say they use Duo security: does that let you store codes? When I looked it just seemed to lock various services