If the client has lots of sites, I would use dual VMXs, but then use BGP over IPSEC from each VMX to an Amazon AWS VPN or Transit gateway.
Currently, I rely on using Lambda scripts performing automations to detect scripts and update configs to handle the failover.
This is so much cleaner.
If the customer has a small number of sites, I'm now just as likely to use this approach to go from MXs in a DC straight to Amazon AWS.