Hi there.
First of all, thank goodness YOU are ok. I am sure you have had an enormous amount of stress on your plate. About you son....
I have been going through a very similar thing with my almost 3 year old son. It has been an absolute nightmare. Its been going on since April and prior to that, he was a great sleeper. It started one night when my husband and I went out to dinner and we had a sitter he hadn't seen in a while. All the separation anxiety started that night.... literally.
For months, we have gone in his room to cover him with his blankie 3-5 times a night when he calls out for us. One night in August we tried to let him "cry it out" and it went on for over 1.5 hours before I thought my heart was going to stop from the stress of it all. Then it was back to covering him with his blanket 3-5 times a night.
I, too, don't want him sleeping in our bed and I don't want us to wind up sleeping in his room. So I consulted a sleep trainer through St. Jude's Medical Center. We had a phone consult and she emailed me a plan specific to him.
There has been some degree of crying involved, but there has also been a lot of reassurance along the way. I feel that when I child is feeling anxious or scared, it is our job as parents to comfort them and help them feel secure. At the same time, we can do it in a way that encourages them to become more self-reliant. So each night we have been waiting longer and longer to go in and comfort him. For the past two nights, he is actually going back to sleep on his own after calling for us for a short time. No more crying at this point.
I still can't believe the drama and trauma is "over" because it is too good to be true, but I STRONGLY suggest you and your husband figure out your own plan that involved comforting him and meeting his needs so he knows he isn't alone while slowly trying to get him to become less reliant on you.
So when he cries at night for your husband, mom (not dad) should go in, tell him you are here for him, and you love him and that you will be back to check on him in a little bit (5 minutes, 20 minutes.... whatever you are comfortable with). And then after the amount of time you told him, you have to be sure to go back and check on him ONLY if he is still crying and calling for you. So then go back in and tell him you love him, etc (be very brief, only a minute and say the same exact thing each time), and tell him you'll be back in X amount of time to check on him. And that is how the process goes.
Good luck!!!!!!