I am so sorry that you are having to deal with this.
I agree that having him put to sleep seems that it would be the most humane decision. He’s old(er), has a chronic medical condition, and has minor aggressive tendencies. Over 3 million dogs are killed in shelters each year- many of those dogs are healthy and young. It’s a simple supply-and-demand issue, and supply outweighs demand. The chances of him finding a forever home through a shelter is slim-to-none, and you’ve already seen that it can be difficult if not impossible to find a no-kill rescue that is accepting new dogs. The fact is that no-kill orgs are up to their necks in dogs as well, and they can only take as many dogs as their facility (or foster homes) can support.
He’s been your best friend and has been there for you through thick and thin. You owe it to him to be the one that holds him and comforts him during his final hours- not some stranger in a cold sterile room at a shelter after being dropped off and spending hours, days, or weeks wondering where you went and why you haven’t come back.
It sucks. It really does. I’ve had to make that decision with some of my own pets due to age or illness. I had to hold my 7 month old kitten who was dying of congestive heart failure. I had to hold a 15 year old cat we adopted from our neighbors when they moved. I had to do it with my 3 year old otherwise perfectly healthy dog who became incredibly aggressive and did not respond to medications or behavioral modification.
It’s a heartbreaking situation, but it’s what you sign up for when you get an animal. It’s one of the hardest adult decisions you’ll ever have to make- but having peace at the end of the day knowing you were with your four-legged friend until the very last breath will give you peace. You’re never left wondering “whatever happened to_____”. You know that you gave them the best live possible for the longest time possible.
Again, I’m so sorry you’re facing this decision