It’s usually best to leverage some sort of “smart” DNS to handle CNAME distribution, giving you the ability to weight your CNAME distribution vs. only using one CDN all the time, or prefer different CDNs in various global regions. I’ve had decent experience with Dyn here, but Route53 has all the features you’d want as well. If possible, write tooling towards your DNS provider’s API to automate your failovers.
Weight your distribution such that you never have one CDN turned off completely; you’ll want a small trickle of user traffic hitting every CDN so that the caches won’t be cold when you switch over to it.
Make sure you have a distributed metrics service (ThousandEyes, WebMetrics, et al) testing your CDNs individually as well as the external hostname.
Stay away from HTML- or Header-munging features when possible; stick with feature sets that are common (and implementable in similar ways) across your providers. (Similar advice goes for multi-vendor *anything*, TBH)
Some folks just let Cedexis do the work: www.cedexis.com