I don't understand when you say he is a caring husband. Nothing you have said makes me think he is caring. He controls you, doesn't want you to see your friends, isn't interested when something makes you unhappy.....
The things you describe as being 'good' are just basic requirements - a home, trips out, he doesn't beat you' - they are not signs of him being good at all.
Enjoying your sex life with your husband is an important part of life. The fact he won't even discuss it shows that he doesn't care what you think / doesn't think you should enjoy it. It shows a general lack of respect for you. As does the fact he controls you.
Please don't have children with this man. That would tie you to him forever, and land some children with a controlling father.
People around you might say he's a good man - that doesn't mean he is. It could mean that they have also experienced marriage problems and have a skewed idea of what 'good' means. Or it could be that they don't want you to rock the boat or to cause them 'shame' (I appreciate in some cultures there is shame in divorce).
Whatever other people say - only you know if you are truly happy, in a relationship of equals, with mutual respect, a shared workload and where you both want to make the other happy. If you aren't, then you would be absolutely right to get out. The sooner the better, as these things get harder not easier (especially if children arrive on the scene). The sooner you do it, the sooner you can both find someone better suited.
I wish you the very best. You sound lovely and deserve to be happy. Life is too short to stay unhappy to make others happy.