Your story is so familiar. I wish I had lots of advice, but I don't. I can say that I have been on this forum for only about a week - days of reading reams of posts, then making a few posts of my own. And it has been so, so helpful. No, I don't have solutions, or answers. But it has helped me reflect on things, and helped me structure how I think about things. It has given me some new perspective. I had a confrontation with my son at 3am today, and it went better --- at least in my own head -- for having been on this forum.
I would suggest you read my post -- NOT because I have anything helpful or enlightening to say, but because there are many parallels to what you are facing and I am facing, and the responses and posts from the other members on this forum were very helpful to me. They might also be relevant and helpful to you.