Aw, Ann, I'm sorry that your son said that. I'm sure it was very hurtful to you.
I think that it would have been better for you to talk to your son, rather than your husband (though I know you were very upset, and your husband was protective of you at that point). If it ever happens again, maybe you could say to your son something like "I'm sorry that you're angry right now, and feel the way you do, but it hurts Mommy very much when you say what you did. You need some time to cool off, so I'd like you to go to your room while you do that. When you come back down, I will expect an apology. You have a right to your own feelings, but you do not have the right to hurt other people by expressing them that way. And remember.....no matter what, I love you, and always will.”
And, remember that this was the mindset that your husband was in right then - protecting you. Yes, it's his son, but he saw his son hurt YOU, the woman he loves. So when he couldn't get your son to apologize, he got frustrated and, as you said, it escalated, leading him to call your son a crybaby.
You are absolutely right - we need to model the behaviors we want our children to copy. But, I'm in agreement with the others in suggesting you re-think what "name calling" is. To most people, saying something like "midget" wouldn't be considered name calling. At least, not hurtful name calling. And I think that is where the line should be drawn.....where it's hurtful to the other person.
For example, if my daughter plays a trick on me…..such as taking the book I'm reading and just set down to go get a drink, and I come back and find my book gone, and I can hear her giggling, so I know she did something with it, I may say (in a playful, pretend-to-be-outraged, way) "Hey! Who took my book? You! You little stinker! Give me back my book!" Now, from the tone of my voice, she knows I am kidding with her, and she never thinks twice about the fact that I just called her a "stinker" --- or Guggenheimer or Ishkabibble or any other name I throw out there --- and neither do I. And to most people observing that exchange, it would not be seen as name calling.
So, perhaps you and your husband could come up with some guidelines about what constitutes name calling. And maybe get a third party - a friend - involved for an outsider's view on what you determine name calling is. If you can come up with an agreement about what it is and what it is not, then your husband is much more likely to abide by it.
Now, speaking of modeling behaviors.....your husband should apologize to your son for calling him a crybaby, if he hasn't already done so. Because to most people, "crybaby" is name calling. It was said to be hurtful and/or derogatory. If your son hears your husband take responsibility for hurting HIS feelings with name calling and apologizing for it, perhaps your son will take responsibility for hurting your feelings when he called you a bad mommy, and will apologize to you. Your husband can even say, when he apologizes, "I hurt your feelings the way you hurt mommy's and made her so sad, and that wasn't right. I shouldn't have done that and I'm sorry." Maybe that will help your son empathize with you - both of you had your feelings hurt.
And, finally, I think that it is sad that anyone would accept one’s child saying “I hate you” or “You’re mean!” on a daily basis. I don’t believe that means that a parent is “doing their job” or “being a good parent”. I believe that a parent can work with their child to find acceptable ways of expressing their anger other than allowing the child to continually say “I hate you”. I am dreading the day that either of my children ever say those horrible words to me. (Of course, since we don’t use the word “hate” in our house, they will more likely say, “I detest you!” But it will hurt, nonetheless.)
Blessings to you and your family as you work through this.