Leave him. You havn't found one nice thing to say about him so far. Your sub nature leads you to want to stick with it, but you're wrong: your sub nature has the right and indeed responsibility to be happy, too. If you aren't happy with him, how can you be making him happy, too? You want to be good to him, leave him.