Please understand that I only have your best interests at heart....
I've read your story, this man has behaved appallingly for your entire relationship. I lost count of how many times he's let you down and you've covered up/carried on for him. You've definitely gone "above and beyond".
His best contributions are his excuses as to why he behaves this way. Excuses just won't cut it.
He's damaged... for whatever reason, he's damaged. And even then, we all have dramas and issues in life, true character is shown by how you deal with them.
It's not your job to fix him or live a half-life to protect him.
Your kids are teenagers, he's had 16 years to learn to become a half-way decent father, you shouldn't still have to lead him by the hand, and police what he does and what he says.
IMHO, rip off the bandage.... you're delaying the inevitable, prolonging the pain, to me there doesn't seem to be any reason good enough to keep him in the house. Your child crying to you about him should be the wake up call you need to end this, waiting until June will only give more time and opportunity for this to happen again.
Your kids will know what's up, more than you know. You're already in separate rooms, having separate lives.
You know by now that you can't "fix" him, and it's not your job anyway, he needs to do this for himself. Maybe he will, maybe he won't, but staying for months more of this treatment will not guarantee a better outcome.
The control is actually all yours. If you feel your marriage is over, (and I'd totally agree with you, you deserve better) then don't prolong the pain for yourself and your kids, first thing in the NY, get thee to a Lawyer, start lining those ducks up and take control.
Living this way ends when you say it does, hugs honey, lots of hugs.