You need to stop enabling the behavior. I am married for 15 years. For 10 of these years, my husband crawled into bed, took his socks off and threw them on the floor next to the bed. For 10 years, I picked those socks up. One day, I had it. I stopped picking them up.
So, 30 socks are piled on the floor and one day he runs out. He says....I don't have any socks. I say, sure you do, there on the floor next to the bed.
Now, through the years, I did make comments about picking them up, just didn't happen.
I no longer pick up the socks, they are with the rest of the dirty clothes.
I wish you well OP, I hope you guys can work this out. Please do not give up without trying. Sometimes, marriage is alot of hard work however, the benefits are great.
I was thinking a frying pan would be a good alternative.
I am so sorry you are going through this.

I am saying this with total good will and sincerity:
You have to take responsibility for the relationship you are in. All the "come to Jesus" meetings in the world won't solve anything if the communication goes like it did when he asked you what you want for Christmas. You got sarcastic, he got sarcastic, and you got hurt. One of the first lessons of a happy marriage (and dealing with men generally) is say what you mean, state clearly what you want, don't expect them to pick up on hints or to read the hurt in your voice/body language. They just don't. If you'd said, "I want bowling shoes, a lottery ticket and some Swedish Fish", chances are your Christmas would have turned out differently. If you'd said, "I'll tell you what I want, but I'm offended you waited until Dec 23 to think about a gift for me" He'd know you were hurt and wouldn't have just thrown the gift cards at you.
If you want help, you have to ask for it. If you're doing too much, say so clearly and concicely. No sarcasm, no hinting, no beating around the bush. You can't change who he is- and you may not even be able to chance where the marriage is headed -but you can change your communciation style.
All that said, I'd have his butt in counceling or if he refused that, I'd see an attorney. Life it too short to live with someone you can't stand because of the way he treats you. Please try counseling if you can talk him into it. You need a disinterested third party.
He sounds just like my ex-DH. Which is why he's an ex-DH. Eventually I got so tired of taking care of everyone all of the time, plus his mother, so we were done.
...being in a similar situation in the past I could "hear" the pain in your voice as I read your post, it was almost painful for me to read because I've been there.
) you have young kids....please seek help for your situation to pull it all back together and have a true FAMILY that gives and receives from one another.....life is tough enough...sharing the burdens are what binds many together!!!!!

Sorry about your Christmas. Lots of good advice. I just want to add, rest, rest, rest. Think of what it is you want and need. Rest some more. Be good to yourself. Imagine the life you want for you and your family and how you can get there. 
I am saying this with total good will and sincerity:
You have to take responsibility for the relationship you are in. All the "come to Jesus" meetings in the world won't solve anything if the communication goes like it did when he asked you what you want for Christmas. You got sarcastic, he got sarcastic, and you got hurt. One of the first lessons of a happy marriage (and dealing with men generally) is say what you mean, state clearly what you want, don't expect them to pick up on hints or to read the hurt in your voice/body language. They just don't. If you'd said, "I want bowling shoes, a lottery ticket and some Swedish Fish", chances are your Christmas would have turned out differently. If you'd said, "I'll tell you what I want, but I'm offended you waited until Dec 23 to think about a gift for me" He'd know you were hurt and wouldn't have just thrown the gift cards at you.
If you want help, you have to ask for it. If you're doing too much, say so clearly and concicely. No sarcasm, no hinting, no beating around the bush. You can't change who he is- and you may not even be able to chance where the marriage is headed -but you can change your communciation style.
All that said, I'd have his butt in counceling or if he refused that, I'd see an attorney. Life it too short to live with someone you can't stand because of the way he treats you. Please try counseling if you can talk him into it. You need a disinterested third party.

Hey, OP, how are you doing?

I cannot imagine how your DH can justify acting like that towards you and his own children!
for you, and I hope that he catches a clue from your letter!!