I am in favor of the visiting-but-staying-in-a-hotel part. Then you know you have an escape coming. And if her house is full of people already, you won't have to stand in line for the bathroom/shower. I have softened towards my relatives, like Polly, over the years; at the same time, I have also established some boundaries. One of those would definitely be, You Don't Get a Say in My Love Life, so the no-sharing-a-room thing would be way too much for me to deal with.
There are also many possible dodges to avoiding Defend Your Atheism/Politics challenges. Fed Up needs to put some energy into learning those. Or simply refuse to be drawn in, by declaring, "It's the holidays, let's just be a family today, not have a political debate," and refusing to say more. If he needs a motivator besides making mom happy, he might think about all those little godly spawn, to whom he and his partner may be the only example of an alternative they've ever seen. There is value in being the Subversive Family member; one of those kids might discover they are gay, or atheist,and need someone to talk to someday.
I would add to number one that if your boyfriend's friends are so horrid and passive that you have to worry about them turning on you, maybe spend less time with them and more with your own friends. If you don't have your own friends, make some pronto or at least get an absorbing hobby. You need an antidote to Trainwreck Drama. Aloso, make Awful Girlfriend your boyfriend's problem. It's his friend that's marrying her, not yours. His friend obviously has problems, but they aren't the kind you can help him with. It is hard to see a trainwreck happening and not be able to stop it, but these things happen. Develop a polite smile, a few non-committal responses ("Wow, really?" "Huh!" and "That must have been difficult," are very useful) and deploy them when necessary. Spend the rest of the time in your happy place, mentally. And develop a busier social calendar so you don't have to deal with it all the time. Now if AG starts freaking out about *you* and your boyfriend not being available and trying to control *you two*, feel free to tell her where she can stick it/avoid her calls.