I would opt for a significantly different (and more expensive) design than this for a customer seeking geographic Internet failover. The scope of that solution is really too large for a community post.
I can tell you that if this is only for outbound Internet access, it would probably be cheaper to deploy a second backup Internet circuit at each site. The complexity would also be reduced. Fault-finding would be much easier. With reduced complexity, uptime would probably be higher.
If I were forced to work with what you have provided, I would relocate the L2 link so that it is between the firewalls, rather than the switches. Then have the firewalls manage the failover between sites.
I would make Internet failover invisible to the switches.