"SMS is an ugly user experience"

No, it's fine. Most common example, I log in to my bank, they send an SMS, I copy the code and paste it into the web site. Works fine and I don't have to pick up my stupid phone, like I would if I used an authenticator app instead.

"and more importantly is expensive."

Not for me. The bank made several billion dollars last quarter, don't think it's a big problem for them, either.