Ask me email, but don't force me to verify it before letting me in. While I'm browsing, show me a prominent warning that my email is not yet verified. Include my email address in the warning so that I can catch possible typos.
This scares me a bit. A part of email validation is ensuring they actually own that account. It depends on the sensitivity of the service to an extent but I don't think it's appropriate to let somebody interact as if they were a specific email account until they've proven it's theirs.
Edit: I do like the recommendation of showing them the email they're waiting to validate so that they can see typos.
One option and something I am using for my startup is to use Clearbit Risk (https://clearbit.com/risk).
It's an API where you give it the user's email address and they tell you if they think it's real or not. I have it such that if it's not risky I bypass the "verify email" step.
Not sure how long the API will be around and it's pretty slow but for now at least it's free.