I know you love and care for this man, but you need to think of yourself too. It was upsetting to read your description about when he woke up after you got home and kicked off. That's horrible for you.
I was in a relationship similar to that some years ago. I did everything I could to help my then boyfriend. I could always justify his behaviour. I'd always make excuses for him in my mind, and I genuinely believed them (he'd been adopted and I told myself that his anger was due to that). I wanted to show him that I would always support him and that I wouldn't give up on him. But, looking back now, I think people can only change if they want to. I let him get away with awful behaviour because, basically I felt sorry for him and thought I was being caring and loving. Well, I was, but I was also, in a way, enabling him. He knew he didn't really have to change because I'd always be there. I left that relationship and my life got a whole lot better.
You shouldn't have to live like this. You seem like a kind, caring person, and you deserve to be treated better. If this has been going on for so long, it's not likely to change any time soon. Your partner is an adult. He knows who he can call ( and if you're worried he doesn't, leave a list of numbers for him).
I'm sure the diabetes doesn't help, but I don't think its the cause of this behaviour. There's never any excuse for violence and abuse. Please speak to someone and think of yourself. I don't like to tell you what to do, but having been through something similar I can say that things don't get better and that I never regretted moving on from such a destructive relationship.
I wish you all the best.