How would you react if someone poked you suddenly at 3 am whilst you are fast asleep? Would you be very happy about it? Would you not tell them to not do that again? And what would you do if they kept waking you like that? I am sure you wouldn't like it either!
I think you seem to have two problems:
1. You expect way too much from your dog. He is giving you warnings, which are ignored! Why do we expect from dogs that they are always happy go lucky and are never allowed to say "Back off, I don't like it"? We would never expect the same from people, we would always respect them and be polite and accept it when they say "no". We should do the same with our dogs.
We also have the rule in our house not to approach the dogs when they are sleeping... in fact, I always tell people to let the dogs come to them, not approach or even crowd them! To me, that just good manners and accepting a dog's need for personal space, just like I accept other people's personal space.
So I think you need to change the way you look at your dog. Be glad that your dog communicates the way he does and listen to him! He can't talk to you like we can, so he has to use other noises, e.g. growling! Don't ignore it, treat him like what he is (a dog, a living creature with feelings and opinions about things), not what you would like him to be (a super thing that never ever is unhappy about anything that is done to him...).
Your friend has to learn to do the same thing!
2. Food guarding. Don't give him any chews when other people are around. It's just not worth the hassle. And start working on reducing the food guarding as mentioned by other posters.
One of our dogs once snapped at a friend (though he didn't make contact). However, she crowded him without realising it at first. She came in to dog sit our four boys, Flash didn't get up from the sofa, which is unusual as he normally greets people that come through the door. My friend went up to him and went to give him a cuddle and Flash snapped at her. He had no intention of hurting her as he purposly turned his head so he missed her face... But my friend realised that it was her fault, she should not have gone up to Flash, but let him come to her! It wasn't Flash's fault! He went through a very stressful period at the time with allergies rearing their ugly head and he wasn't feeling well; the only way to communicate to my friend to leave him alone was under the circumstances to snap at her (as he couldn't back off laying on the sofa) as she didn't recognise the fact that he didn't get up from the sofa as telling her "I am not feeling well, please leave me alone and I'll come to you when I am ready". Flash has never done it since, and I am not worried about it as I know he made sure that my friend wasn't hurt, but simply warned. --- Exactely what I would expect from my dogs!
Vera