You took him "for better or worse", blah, blah, blah. He's not cheating, drinking, drugging, etc. You have a problem with his mother. Was she like this before you got married? Seems to me, that you two just need to learn how to discuss your problems without having it turn into a major brawl. At least he leaves when it gets hot, and doesn't strike out at you. Did you have agreements on how to raise the kids before you got married?
Cheating won't solve your problems, however they may make it harder for you to reconsile your differences. Do you have to agree on everything or can you solve some of your issues by agreeing to disagree? Call a truce, sit down and discuss what each of you want out of your marriage and where you are both having problems and differences. Then decide whether to stay married or not. And for heaven's sake, quit fighting in front of the children--do it in private. You have 2 kids by 2 daddies already, what will you be teaching your son about fatherhood if you keeping the switching men in his life.
I'm not trying to sound preachy but be an adult about your situation. Let your husband know that you are serious, that he can't run away, that he needs to sit down and talk with you. If he doesn't, then it seems you have some big decisions to make. If your nerves are already frazzled, how will you feel about yourself when you break your marriage vows?