Some people are just attracted to, and like assholes. You seem to be one of them.
As such, you need to get away from him as quickly as is possible. It is not going to work long term. You are going to continue to screw other guys, probably guys who are assholes like your ex, and eventually even a prince will have had enough and will leave. In the meantime you will have screwed up his life, for no real reason. You don't love him, it sounds like you barely like him. You need to find the sort of guy that you like, and if it ends badly at least it is only your life that you are screwing up. Let him find someone who loves him for who he is.
Realistically, he is much to devoted to you to be healthy. Forgiving you for cheating is pretty much over the top at a month or so in. I think he needs to get a dog.