Thank you for sharing..Ok. I am going to give you the perspective from the other side.
I spent many years being verbally angry with my H. I never called him a loser and stuff but my words were pretty harsh.
I went to anger management. It helped only a little.
I saw a Psych and was diagnosed with Bipolar II (not quite as bad as regular BP but irritability is a BIG part of it) and was put on appropriate medication.
Honestly what would have helped would have been what the folks here are suggesting. Please don't misunderstand. I am not blaming my husband for my terrible behaviour. But I would have straightened up hard if he had drawn his line in the sand, packed his bags and thrown divorce papers on the table. Even if it was temporary.
I had a similar situation with a friend who had endured me for several years before my diagnosis. She drew the line and tossed me out of her life when I stepped over it. I was devastated. But I grew up and took responsibility for my actions. We are still friends to this day.
People will treat you a certain way until you toughen up and put your foot down. Demand respect by enforcing consequences. Do the 180. Educate yourself on how to handle your son's feelings in this situation. You have very little to lose at this point. Except your dignity and self-respect.
We are all made differently. Admitting that, and accepting that is just one hurdle. A big one.
Life is one long hurdle race. Most trip over some bars, rarely, over all of them.