OP, I really feel for you as I have been on both sides of this (abusive father and abusive exH).
My dad is emotionally abusive and my mum a hopeless codependent and enabler. I find her denial of what happened and is still happening with my F really frustrating and I feel betrayed. It minimises the impact of what he did and I'm angry that she put her need not to rock the boat ahead of her DC's wellbeing but then I also understand she is flawed because of her own abusive childhood.
I have 3 DS and left their dad when they were little but allowed contact to continue as I believed he was only abusive to me. I now see how flawed that was as a child witnessing DV is just as damaging as being abused themselves. Unfortunately I found out later he was also physically abusing them and I cut contact immediately.
I lived for a long time with a victim mentality, which didnt help me or my DC. The truth is I did allow my DC to be subjected to their father but at the same time, I was unable to see things the way I see them now. I have been an enabler and that is very painful to accept as it is the reason I'm so upset with my own mother. The truth is, you have to forgive yourself for what has happened but take accountability also.
I think the best thing you can do at this point is apologise to your son authentically. Admit you let things happen that shouldn't and that you are so sorry for that now. That you were unable to see things clearly at the time but now you have realised the impact that had on him. That's what I would love to hear from my own mum and what I tell my DC now.
I think when we are younger, it's difficult to accept that our parents are the result of their own upbringing and we hold them to very high standards. When he becomes a father himself, he may realise how difficult it is to parent when you have not healed (or recignised) your own childhood wounds and may be able to understand abit more. This has really helped me to maintain a relationship with my own DM.
You can't control how he feels at this time but you can reach out and validate his feelings which I think would be healing for you both. Keep the door open, still send him letters etc and try to call him often. Show him you are willing to try and fix your relationship and focus on his experience without being defensive or justify why you stayed.