silvagod, What an excellent posting to TOH. You have given her an excellent analogy of why he stays away.
TOH, It's not because he doesn't love you that he avoids you, but he knows that he's done some pretty ugly things and he feels guilt and shame for what he's done and is continuing to do. When they are on this emotional rollercoaster, they can't help themselves. It's all about emotions. Stop and thinkg about it for a moment, when we are upset or angry, we say and do things that we could very well regret later. Why? Emotions took over.
Right now, he's the teenager that knows he's done something wrong and he doesn't know how (mom) you are going to react. He's heard so many times before about what he's done, etc. and he feels that nothing he says or does will ever get him off that train of finger pointing.
You will need to just drop the rope and let him come to you. When he sees that you are not jerking the rope tighter and pulling him back in, that is when he'll begin to come around again.
For now, keep the focus on you and your children. If you see or speak to him, always be friendly and thank him for the things he does. I know you do this already, but please try not to get angry and frustrated w/him. Okay? It's hard, but you will learn that you can get more with honey than with vinegar when it comes to dealing with your h.
Sit quietly, the answers will reveal themselves when you least expect them to. The past is gone, the present is a gift and you need to focus on today, allow the future to reveal itself when it is ready.