I think it helps to look at patterns of behavior.
Certainly everybody and every R has flaws. But when is it too much?
That certainly is an individual choice.
I can use my own M as the best example. H went off the deep end into depression/mlc about a year a half ago. Anyone who knows him and heard about what happened just couldn't believe it. This was sooo the opposite of the way he usually is.
So when deciding whether or not to give the M a second chance, I needed to look at the whole picture. He is good guy at his core who made some horrible choices. But he is making up for them now.
The pattern of bad behavior is not continuing. If it was, I'd say enough.
Fool me once....
So that's my take on it.
The SSM stuff has always been there and I do not consider that a dealbreaker, because things are improving in that area as well.
H has never said a hateful word to me or about me to anyone. Even through the whole separation, he told his friends that I was great and this was his problem. (his choice to leave etc). Many of his best friends confirmed it.
That takes some character. And even more character to ask for forgiveness and realy mean it.
So I would suggest you look for patterns in your ex. Does he show you the respect you deserve. Does he have character? Does he show remorse and a change in behavior when he makes a mistake?
If not, then you need to evaluate what kind of R you are settling for.
Hope some of that helps.