I gotta agree that, from the information you have given us, this marriage needs to end.
From earlier posts I got the impression that this woman has a personality disorder with the banging her head with the telephone and the being a different person around her friends, and the never admitting that she is capable of wrong.
When you said that she admitted she cheated I had hope. That didn't last. You had to trick her into telling? And then you say that she '
thought she loved him, but then then he was no good in bed?' The whole thing just stinks. I don't even care how much is true and how much is lies. This is not a good person to be in a relationship with. (Again, from the information we have been given.)
I don't know how much you know about Personality Disorder but it's scary stuff. There are different kinds of them, and neither of us are in a position to diagnose anything, but Personality Disorders basically are not mental illness, they are character flaws. This is the person they are. It is not "curable."
Here is an interesting read about one kind or personality disorder:
https://en.wikipedia.org/wiki/Borderline_personality_disorder
Here's where it gets really scary. You're familiar with the term "sociopath" right? Well that's a kind of Personality Disorder:
https://en.wikipedia.org/wiki/Antisocial_personality_disorder You may literally be married to a "Psycho."
https://en.wikipedia.org/wiki/Psychopathy
I honestly would get away from her ASAP.
I am generally against diverse, but the fact that she committed adultery (read that word carefully: ADULTERY) changes everything. Even if she was a good person at heart, you are morally, ethically, and in all other ways free to divorce and remarry as far as I'm concerned.
And yes, you should have the boy.
I want to say one more time, that everything I have said is only based on the limited information we have. In the end this is your decision.
I really do hope for the best for you and your son. And I hope that your wife can find some kind of peace as well.