When used with a second-factor, is the whole system (password+2nd factor) strong enough as a whole that the disadvantages of passwords become irrelevant?
For most purposes, having a second factor is probably sufficient to outweigh the problems with passwords, assuming the rather important condition that you implement the second factor correctly. In particular:
- You need a properly defined recovery mechanism that's still secure. The OTP recovery codes that are provided by many sites which support 2FA are a good example of this being done right.
- You need proper support for allowing multiple independent second factors. For example, allowing association of multiple U2F keys with a given account, or multiple fingerprints, or multiple TOTP apps. The reason this is important is that unlike a password, the second factor is usually not trivial to replace, so having an emergency backup is important.
Assuming the answer to the first question is "no, password disadvantages make the system too weak", what alternatives are there for us to use in the future?
I don't think there really are any that are anywhere near ready, largely because they have their own issues which are arguably much more complicated to deal with than passwords. Biometrics are still pretty easy to fool and aren't even entirely reliable to begin with. Hardware security devices are generally a joke as they are currently implemented, and are far easier to lose than passwords. Other technologies have their own further issues.
Beyond that, I'd like to actually challenge the premise of the question. You seem to imply that the issues are inherent to passwords, but I would argue that they all stem from how they are typically used.
Firstly, the concept of a 'strong random password' as most people think of it isn't actually all that good. It's pretty well established that what people classically called strong passwords (and what many websites still require you to use) are hard for people to remember but easy for computers to guess, and therefore not really all that useful. If, instead, you use something similar to the XKCD approach (XKCD #936), it's pretty trivial to remember, and if done right can be insanely secure (especially if you mix languages).
Now, even ignoring that though, most people actually can remember classically complex passwords without much difficulty if they use them regularly. The issue here is that many people use persistent login sessions (which are bad for other reasons as well), and have things set up to remember their passwords for them. If you're typing it in every day, you'll have it memorized, at least as muscle memory, after at most a few weeks.
Also, the point about weak storage is irrelevant, because it's not specific to passwords. It's just as possible for 2FA systems to have the same issues for the second factor as it is the password.
Altogether, that leaves reuse, but that's still an issue for many alternatives (it's not like you can realistically use a different retina for each retina scan, or a different finger for each fingerprint scan).