The snap is an escalation of his 'back off' signals. As
@CachetheBC says, please be aware of your body language (the whole family, not you specifically).
Dogs give a series of signals that they are unhappy, but unfortunately most people don't recognise them because they can be quite subtle. To begin with there is often wide eyes, lip licking and yawning. There is also muscular tension in the body. Then the ones we sometimes do see - growl, snarl, nip then bite. If the early signals are not seen (or, in the dog's view, ignored) he won't bother with them because us stupid humans pay no attention anyway; so he may go straight to the bite. That's why it's important never to ignore the early signals or reprimand the dog for giving them.
Please tell your husband not to try to interact with him - I know its hard, but your dog is giving clear messages that he is afraid and doesn't want him close. I'd also encourage you not to sleep with Toby. If your husband moved and startled him, it could result in a bite and you having to make a tough choice.
There's a method you can use to get Toby more comfortable with your husband.
For the next two, three, four weeks or so (depending on how things progress), I'd suggest your husband ignores him. Absolutely. Completely. Not even eye contact, because as already mentioned , direct eye contact is very intimidating. Also, he should position himself so he is never between your dog and his safe place (bed etc) or escape route (door from the room).
Then, once he can be in the same room with your dog being relaxed, he can try taking some lovely treats and tossing them past the dog, so he has to go away from him to get them. I realise that sounds counterintuitive but it helps the dog build a positive conditioned emotional response (google +CER for the science if you are interested) without having to get too close, which could make him feel quite conflicted - he wants the treat but has to approach a scary person to get it.
After a number of days of doing that, your husband can put one of the treats on the floor, about 18 inches from his feet. See what your dog does. If he darts in, takes the treat, and goes off, then he isn't ready yet for this stage. So, as with anything in dog training, go back to the previous step for a bit longer.
When he takes the treat from the floor and eats it there, your husband can continue to do that for a few days. Still no eye contact.
Once he has been taking the treat from the floor happily for a number of days, your husband can offer one from his hand, but again see how the dog reacts. Any lack if confidence (taking it and stepping back) again is a sign he isn't ready, so back up a step for longer. And still no eye contact.
Once he is comfortable taking treats from your husband's hand (and I mean really comfortable) he can try petting him, but using the five second rule.
Stroke him for five seconds (some dogs prefer you avoid the head) then stop. Only if the dog initiates further contact by nudging your son or similar, he can continue for another five seconds then stop again. He should continue only for as long as the dog keeps asking. That gives the dog control and in turn that will build his confidence around your husband because he knows he can make it stop at any time.
Expect this to take weeks, or even months depending on the dog. But don't be tempted to rush it, take it at the dog's pace.