Two-factor authentication is probably the best solution -- unless your phone is at the bottom of the river, or your employer puts you in a spot where phone service is non-existent, like the basement.
Some services (ie Google) allow you to have a backup phone number. So my advice is buy yourself a cheap Android phone with a pay as you go SIM just for these types of situations. It's cheap insurance. Some people even use a freedompop sim which is totally free. So $50-$100 onetime cost for the phone and $0 monthly cost.