Hello darling.
Well first of all i applaude your patience.

I personally believe that a man should support the woman's emotional needs as well as her physical well being. If he's not showing you that then i would think that he is not going to change too much. I know it's really hard... because yo have spent much time with him and in some ways you have grown with him regardless of any problems. But - you have to do what is best for your family. Don't just cut him off ... but let him know you're stable and you have been there for him. Let him know that you don't want to just wait and wait. If you do so in telling him or already have and you see no changes i would let him go. I look at it this way... would you rather spend your life with the small special every now and then happy moments w/ him or would you rather become strong for yourself and possibly meet the man of your dreams who is going to realize you're amazing. I don't know if he is like this but .... i know what it feels like to have someone have all these flaws and somehow at the end of the day they have a way of making you love the more than anything...
There problem is not in you. Just keep your atena's up and see if he makes any stable improvements. God has a special plan for you. Good Luck!!!!