Stake hole, all the way.
I knew that it wouldn't be ideal, but I chose one for my new silverado, and am glad I did.
I used a CB antenna mount bracket and tweaked it so that it would mount inside of the bed stake hole with four small bolts through the inside of the bed (in the sprayed-on bed-liner area), cleared the paint to metal, used brass hardware, sealed everything with silicone, and it looks very good. The top hole size had to be increased for the NMO mount. I can unscrew the antenna (Diamond NR770HNMO) and throw a NMO cap on with O-ring if I like to go through car washes, etc, thought the NMO mount would probably be fine left out in the open. I took pains in grounding the mount to the bed, and the bed to the frame and other parts.
In a "less than ideal" location, I have an SWR of 1.2-1.3 on UHF, and 1.5 or better on 2 meters except for the very top of the band which hits 1.6. Tuning took some work and involved a cutoff tool in the end. I expected the SWR to run a bit high, but even at 1.6 that is still 95% forward power, and the performance is outstanding.
No holes in the roof, no misaligned interior panels / trim / headliner, no scraping things going through a drive through or under covered parking (don't care to use the fold-over feature of the antenna), and I can work simplex like a champ on low or medium wattage.
I have pics of this installation in my profile.