A few more thoughts:
An apology here would go a long way towards smoothing your relationship, whether you feel you were in the wrong or not. It's always lose-lose if your mindset is "I'm not gonna apologize, SHE should apologize to ME." You can't approach apologies as meaning you are somehow "losing." Let's face it - as long as you are parenting your son, you will have to deal with his mother. There is, simply put, NO VALUE in fighting with her. All it can possibly do is make things worse for you, and more complicated for your parenting agreement.
When I was married, I had a step-son who was 1 1/2 at the time. His dad was an abusive jerk, and he lived in Arizona (we were in Massachusetts). He would constantly fight with my wife on the phone about when he could see Chris. She wouldn't let him go out there, and he would spew the most vile insults and stuff imaginable, about how she was "keeping his son away from him" etc. For him, it was never about what was best for Chris, it was about HIM being disrespected or whatever.
What he failed to understand is that it was ALWAYS ABOUT CHRIS. She was terrified of him, terrified that he would hurt Chris. So, when she refused to let him see Chris, it was out of fear for his safety.
Chris' dad turned out to be a deadbeat. He loved to rant and rave, but at the end of the day, he never paid a cent in child support, and never cared enough to take Erica to court for a custody arrangement.
My point is, your ex- keeping your son from you will NEVER be about her disrespecting you, or deliberately trying to mess with you. She's only worried about the safety of her son. That's what mothers do.
Anyone who has lived with an addict or with someone who is trying to change deeply ingrained behaviors knows that it takes a LONG string of successes to earn back that trust. Even if YOU know you're trying to change, HER vision of you hasn't changed. She doesn't trust you, and from what you've told us, she has good reason for that.
Think of it like a piggy bank. Every time you are a responsible parent, or kind, or thoughtful, you get to put money in the bank. When it gets full, you've established trust. But every time you slip up, the bank breaks and you have to start all over again, with a slightly <I>bigger</I> piggy bank. As of today, you're at ground zero because of the other day.
Consider it from her perspective for a moment: it only takes ONE slip-up for James to die, and that's ALL she can think about. It's <I>terrifying </I>for her to willingly put her child in that situation. She's thinking things like, "Maybe he's been drinking earlier, and he thinks he's fine, and I let James go with him, and he misses a stop sign or something, and bam, James is dead."
Anyway, again, it's <I>great </I>that you're trying. I hope you continue to do so. Just remember that every time you slip up, you have to start over again.
Good luck!
~s