Battled this a while back with my battery draining overnight and 2003 suburban. It took a week to figure this out.
Remove the info fuse which is the on-star system if you dont have to have it.
That said, my fix held true. My vehicle starts daily without issue at all times (even after sitting for days). It turned out to be the INFO fuse. The .5 amp HVAC draw for 4 hours is ok (the fuse is back in). The .7 millivolt/1amp overnight draw by the info fuse was simply too much (this doesn't turn off after 4 hours via the computer). I believe this became a problem all of a sudden because I had a Gold Die Hard battery that died of old age and I replaced it with a cheap advance battery that couldn't deal with the overnight draw.
To figure out what fuses were pulling with the key out:
I read about something called voltage drop and looking for the fuse that doesn't look like the others when reading. On my meter I set it to 200millivolts (not amps).
Checked every fuse. I found 3 fuses under hood fuse box that gave an odd reading versus all other fuses. They were, info, ipc/dic, and hvac. I pulled all 3 and battery was fine after sitting 2 days. Left it this way for a week and it was good all week.
My readings were this:
15amp info fuse = .07
10amp hvac fuse = .03
10amp ipc/dic = .05
Ended up find that I could put the hvac and ipc/dic back in and just leave out the info/onstar fuse and the fix held.
Hope this helps someone.