I really really feel for you, i honestly do. I can see just how much of a bad situation you are in, and its not your fault. I know its easy for other people to say "leave him", but after 5 years i can see that you are very much in love with him. However, you do deserve much, much more than this. Unfortunatley, if he wont admit he has a problem, then you are stuck. Any advice you give him wont work if he doesn't want help. There was one thing that stuck out to me in your post- the fact that he wouldn't promise you he wouldn't do drugs again. You could look at that in two ways, but to me it appeared as though he wasnt prepared to lie to you, which shows he still cares about you. I feel that you should tell him you want a break, suggest to him that he gets professional help for his addiction, and whilst you will be there to support him during this time, it is something that he needs to sort out for himself.
You have been through a great deal with your boyfriends addiction, and i really admire you for trying to make it work, but i feel you have done all you can do for him really. He has to want to change. You are clearly unhappy with the way things are, so remember to put your happiness first for a change okay?
Oh, one last thing that popped into my head... do you know why he takes the drugs? Has he suffered a major loss in his life, been through some trauma, suffer depression? If that was established, it might make his possible recovery easier, e.g counselling might be able to work at getting to the route of the problem.
Let us know how things get on, and if you ever want a chat, just send a PM!
All the best,
Lou
xxx