I use Yubikeys for 2FA (password manager, etc) and SSH (all lab servers, etc).
I’ve got one nano that is permanently plugged into my day to day laptop, and then two regular ones that I use on worklaptop and carry along with me. All version 5, even though I don’t use the NFC feature yet. The only feature I need that is not available on version 4 is touch caching (for when I run ansible scripts towards multiple servers and need it to cache touch).
The nice thing with multiple ones is that I generate the private key on the yubikey itself, it never leaves the key. If a key is stolen I got the other ones as backup to be able to log into things.
I think they are worth the price, even if they are on the expensive side.