|Maybe I'm heartless, but if the dude fell asleep 3 times at work and I knew I'd be the one that ultimately got in trouble for it, the guy would be written up. No hand-holding, no taking him aside... none of that. Then again, I probably would have told him the third time I woke him up (which by the way, I'm not his mother) "listen dude, if you need to take a sick day then take it... but you're here to work, not sleep". You can be a bleeding heart all you want, but the people above you aren't going to lose any sleep writing you up because you felt bad for someone else and tried to do them a favor. If you try to be the nice guy, ultimately people will take advantage of you.
I'm curious if he's falling asleep at his other job as well. I'm sure they're not being nearly as patient with him as you're trying to be. If he's having problems at home that's unfortunate, but he needs to find a way to function at work if he wants to keep his job.
I hope your stress levels go down Mel darling! You definitely don't need to be dealing with all of this!