Sorry, S., but I could only get to "he spit in my face twice" before I had to stop reading.
You have to leave this man. He is not acting like a husband, an equal partner in a relationship. He is acting like a jerk. You are walking on eggshells. (I did read down further. Thank goodness you see your necessary option.)
Talk to an attorney, as soon as you can. You need to get legal advice and get away from him. You may have to defer finishing your schooling, but your children won't be taken away from you.
Do document everything, in a very safe place. Set up a file with a new password if you need to. Delete any calls to/from the lawyer on your phone. Your husband is emotionally abusive. I'm so sorry-- it sounds like you have given things a good try. Spitting in anyone's face is equal to battery, legally.
I don't know that there is a second 'side' here, S.. He refuses to go to counseling, you are capitulating to him on everything and he's still trying to punish you. For what? It sounds like he has a lot of troubles in his own psyche he hasn't addressed. You can only change your own actions, you can't change his. Your kids will be healthier and happier without all of this.