When you login to gmail / localbitcoins / etc with 2FA what you are using is a TOTP (Time-Based One-Time Password). This requires a central server to act as a gatekeeper, and only let you log in to your account if your "google authenticator" TOTP is correct.
With Multibit there is no central authority holding your keys, they're on your hard drive.
keepass' Yubikey plugins, do not support TOTP, only a static password (just a long string) or Challenge Response password (a fixed response to a given input challenge, which could still be sniffed by malware) or a HOTP (HMAC-based One-time Password). (there is a keepass plugin to calculate TOTP, like google authenticator does, not to login to your keepass database)
The keepass plugin "otpkeyprov" uses a HOTP, which replaces the 30-second timecode with a counter in a separate file, alongside the database file. The problem with this approach, is the Yubikey Hardware Counter progresses every time the button is pressed. So if you accidentally press the yubikey 4 times, and your "read ahead buffer" is set at 3, you will not be able to login. HOTP are also not suitable if you want to keep >1 copies of your database with 1 yubikey as the counter will become out of sync.
This long but brilliant forum post describes OTPs in more detail
One of the ways to implement it is to use hardware token as 2nd factor. In our case it's YubiKey. YubiKey can work in 4 modes:
Y1 - static password;
Y2 – HOTP (HMAC-based One-time Password);
Y3 – TOTP (Time-Based One-Time Password);
Y4 - HMAC-based challenge-response mode.
The best option to use a Trezor as 2FA device - which is required to sign transactions (something you have), additionally you can enable a PIN (something you know). The brilliant part of Trezor it is (essentially) impossible for an attacker to extract your hierarchical deterministic seed from Trezor, even with physical access, and it is resistant to brute forcing of the PIN as the time delay between incorrect guesses increases exponentially.
Trezor already supports BitID, whereby you use its signing capability as an authentication token to login. A sample password database which uses Trezor it is available.
Incidentally, the latest electrum release supports Trezor (Transactions are created and broadcast by electrum, but signed by Trezor)