Nobody forced him to do this, he chose dishonesty and betrayal. Nobody has a perfect marriage and so far all I’ve seen is you taking responsibility for your half of it. He hasn’t said he put a foot wrong, so I wouldn’t pick apart how you showed up in your marriage, it’s not the reason he cheated.
Cheating is a choice where honest options are available. You’re not to blame for any of this. You could have been the wife from hell and even that doesn’t justify betrayal. If he was so very unhappy why not go? Because he wasn’t particularly unhappy until he started chasing highs provided from external sources. Then the high of secret flirting made him feel important and special and off he went, riding on his unicorn into the sunset of LaLa Land, off to save his ‘princess’ whom he is banned from seeing by the villain of the piece: you. What a hero, a prince indeed.
So, if he didn’t cheat because of you, why did he?
He cheated because he wanted to,
because he felt entitled to,
because he can’t face or deal with issues honestly and courageously,
because he’s a coward,
because he’s selfish,
because he’s betrayed his own integrity, because he can twist his reality into a pretzel in order to absolve himself of wrongdoing, because he apportions blame and responsibility instead of owning it,
because he can lie to himself and others as easily as breathing,
because he needed to reinvent himself due to a level of self-loathing he doesn’t even realise he possesses until somebody flatters and appears to validate him,
because he’s totally lost his way in life and because he’s currently being an arsehole selfishly wading through shit who thinks it’s milk and honey.
He’s responsible for the end of your marriage and the present state of it, not you.
Look forwards now and let him reap what he’s sown.