Cersei's troops aren't that depleted, and she's controlled Westeros's breadbasket, the Riverlands, ever since Jamie defeated the Tully's. Cersei certainly has more troops than any single one of her opponents, and very likely as many troops as all of her opponents combined.
Dani had to travel thousands of miles to get to Dragonstone, Cersei would only have needed to send ships stuffed with troops and rations to the mouth of the bay, a distance of maybe 350 miles. If I were in her shoes, or Lord Kevin's before his unfortunate demise, I'd have sent a garrison as soon as Stannis vacated the fortress to ensure he'd never be able to return.
A few hundred troops could easily hold it for years against anything aside from mature dragons. It's one of the greatest fortresses in Westeros. It's only fallen once before, and that was to the dragons of Dani's ancestor, Aegon the Conqueror.
True. That's why military rations exist. You fill the store rooms with them before a siege starts.
It isn't easy to maintain a blockade when your nearest safe deepwater port is thousands of miles away.
Dragonstone to King's Landing is a much shorter trip than King's Landing to Highgarden. If Cersei marches her troops off to Highgarden then she'll be leaving her own capital open to an attack from the sea, and betting her throne on a man she has openly said she doesn't trust.
That was hokey, but hey it's tv....
Well that's the thing. Everybody except Cersei, Euron and the White Walkers will likely bend the knee to Dani at some point, assuming they're still alive to do so. And both Cersei and Euron are mad...