The way I choose to explain the long gap between the NX-01 and NCC-1701 is simply that the tradition of the Federation needing to have a ship named Enterprise didn't start until after Kirk.
The NX-01 may have been in Starfleet, but it wasn't a Federation ship. It was a celebrated Earth ship, sure, but it was never part of the Federation. The Federation didn't think to have a ship named Enterprise, until the NCC1-1701, as homage to the NX-01, but in the beginning, the 1701 was just another ship in the fleet. It wasn't until after April, Pike, and especially Kirk, that the name Enterprise was legendary for the Federation, thus the tradition began at that time. So, I don't really see the time between the NX-01 and NCC-1701 as a gap.
NX-01: 2151-2161
1701: 2245-2285
A: 2286-2293
B: 2293-23??
C: 2332-2345
D: 2363-2371
E: 2372-Present
There are presumably only two real gaps, the NX-01 was retired as a Columbia class after the Romulan War and made a museum ship. Naming another ship Enterprise may not have gone over well with many species in the 2160's and the name was kept in reserve for some time.
Enterprise C to D mainly out of respect for the sacrifice of the C.
Yeah, I think the gap between the C and D was both out of respect, as well as waiting to name the latest and greatest shio Enterprise. The loss of the Enterprise-C was seen both as heroic to both the Klingons and the Federation alike, but it was probably also jarring to lose it in battle with the Romulans. At the time, the Ambassador class ships were pretty advanced. I mean they could have simply named another Ambassador class ship Enterprise, but I think out of both respect to the C, and also just the mindset that if they were going to build another ship and name it Enterprise, it was going to be the next generation of ship. No pun intended! Really!
Sort of like how when the WTC was destroyed, they could have built another WTC somewhere else, and not as tall, but they ended up using the same site and built an even taller building in defiance of the former's destruction.
So, maybe the Federation waited for the Galaxy class to come online just to stick it to the Romulans as a statement that they may have destroyed the Enterprise-C, but we have this new, and far more powerful ship. And by the way, it's name is Enterprise-D!