Again, I reiterate.
The players choose where to fight the dragon.
If they want a boring slug fest, they will walk into the cloud and miss the dragon a lot, getting knocked around by the dragon's extra damage while the dragon kills them with impunity.
If they want something exciting, they will run away from the cloud, and the dragon has to come out to engage them. Yes, it generally comes out with a breath weapon, but at that distance away, the party can mitigate the pain using good tactics. Let's say there's a designated order of charging.
One of the fighters on the extreme edge charges it the moment after the dragon shows it's face. The dragon either breaths on the fighter, or... no. The dragon has no choice. Everyone else is out of range, and the dragon cannot move any more if the fighter hit it. And if the dragon keeps moving to get the others, the fighter WILL hit it, and stop it. Not a good spot for the dragon.
The dragon's either going to Cloud of Darkness again, or attack the fighter. Then everyone else swarms around the dragon, spreading thin to avoid damage from the Cloud. Ranged attackers stay where they are.
Every complaint about the dragon, every single one, completely ignores how the cloud is immobile, and the party is not. The dragon can do -nothing- to keep the party inside that cloud, except for OAs. The party has absolutely no reason to stay in the cloud, tacticly, so the dragon has to come out.
Now, of course, the dragon can use it's swim/flight abilities and the terrain to make the fight interesting. Cloud becomes a dynamic ability, rather than a static terrain.
Any tactic that can be defeated by a singular level 1, hell, an invoker with enough time on his hands is not an 'optimal tactic.' Stop treating the dragon like it is.
If the dragon is surrounded, bloodied, etc, I'm going to say that the dragon -would- use Cloud of Darkness.... and then fly away to fight another day. He knows he's in trouble at that point.
If all the dragon does is, if you use the tactics that are proven to damage it, wander out, get hit, then cloud of darkness, then the party is winning that fight. The dragon is spending its standard actions defensively rather than offensively. The party answer to -cloud of darkness- is always 'Go away from the cloud of darkness.' They have -no- reason to stay in there. None. Would the party stay in a wall of fire just to fight a wizard, or would they 'Walk away from it' in order to engage said wizard? The black dragon is designed around the idea that staying in the cloud makes no sense. But then the dragon can use its stealth to -charge from the cloud- which makes for a more dynamic fight.
The simple problem with the black dragon encounter is that it doesn't tell the players how to beat it. Show me a monster that -does-. Regardless, any party that stays in a Lurker's equivalent of a Wall of Fire desires to burn to death. The dragon kills headstrong players who don't approach a tactical game with tactics--any one else uses common sense and the fight immediately becomes interesting again.
'But the party could spend tons of rounds waiting for the dragon boohoo' but this doesn't take long at all. 'So you're all gonna wait for the dragon?' 'Yeah.' 'Okay, a minute of quiet eeriness passes... SUDDENLY...'
If those rounds passing frustrate your players, that's because you, as a DM, didn't use your DMness well to lower the frustration, chose not to have the dragon come out, and chose to keep the fight boring -on purpose- just to goad the party back into the cloud of darkness.
Your melee line doesn't have to be bored. Instead, make them -scared-. Scared meleers are not bored meleers.