If you are not happy right now, 5-10 years later down the road, you will still not be happy. We can never change anyone unless they decide to change themselves for the better. I suggest, talk to him when it's just the two of you and he's in a good mood. No one is perfect and I get that. You are not looking for Mr. Perfect but someone who is compatible and share responsibiliti es with you. Someone who will help you and you help him and there's nothing wrong with that.
In most cases, in order to do so, we have to let them go. If not, you will be at the same place and in the same relationship 5-10 years later down the road. I know a lot of people who let their partner go and some found happiness, some regret it and some are still in the same dead relationship as is. I wasn't happy in my relationship with my boyfriend but I couldn't leave him because he got sick. I thought of leaving him so many time/years because I'd the same mindset like you thinking "Only he can put up with me". I was wrong. No matter how much you love and do for someone, if you are not happy and they cannot fulfill your wishes, you'll end in depression. I did. Look, this year will mark our 12th years together and I've been trying to leave him since the 2nd year of dating him. A decade later and I'm still not happy.
If you plan to go, spread your wings and fly. When you are ready to do so, never look back. You'll be lonely and sad for a while but this is the beginning for a new chapter. A lot of people stay in hopeless/loveless relationship just because they are comfortable with one another. Ask yourself, can you see yourself with him 5-10 years later down the road with him being the way he is? Only you know the answer to that. Good luck.