OP: I was you, some similarities in your posts from what i experienced. It took me three whole years to pluck up the courage to leave. I still loved him, despite everything. He called me a cunt in front of the kids, put his hands round my throat in a drunken arguement, used to put me down all the time, never allowed me any autonomy. The list is endless. In between episodes we could get on ok, but when he felt shit, anxious, stressed or just not in a great mood, I got the brunt of it. The final straws for me was seeing how it affected the kids, and seeing what they witnessed from an outside perspective. We once had a child to stay who doesn;t speak Englsih 9we live abroad) and he shouted at me so much in front of him, i decided enough was enough. he couldn't even control himself with another persons child in the house.
I had all your fears, all what you are saying I recognise. I left 9 months ago, its been hell at times, BUT I am so happy I found the strength to leave. My choices are my own, my space is my own, he doesn't contaminate it. I do think my ex is mentally unwell. But that doesn't excuse anything.
Mentally I left 1 year atleast before I did, in which time the behavior worsened as I think he sensed it. Stay focused, stay strong and make plans. You will thank yourself for it later, as will your kids. NOONE deserves to be treated like that by the one person who should treat you with kindness.
Good luck. I told him first, then he took it out my hands and told the kids in the most horrible way (he got drunk, he was hysterical, it was horrendous). be prepared for it to get nasty. The kids will be fine, just protect them from the fall out as much as possible.