2FA Security is a pretty important topic. While as a convince it would be great to broadcast the security code to as many devices as possible this is fundamentally a bad security practice. Imagine for a minute that a bad actor has compromised one or the other of your message platforms now when you attempt to login to fix things they're also given your security code. If you read enough stories you will find that both email and SMS can be compromised to grab peoples codes.
Secondly, I have never interacted with a product that broadcasts to both messages upon login, they always present a choice of where to send it.
To you actual question; Twilio + SendGrid (a Twillo company) would be the default choice because both of these log what happened when you send a message. For instance with SendGrid you can see the delivery events in their UI to debug issues (e.g. was it delivered to a mailbox, or what was the error code). If you use Amazon SNS you will have to build out all of the logging to know what happened. At some point you'll need to have all of this info in your product because your CS agents will need it for quick debugging of customer issues, but when you first roll out it's great to just let the service do the logging.