45 minutes is not long enough. Many captures for various reasons last over an hour, some over many hours.
Plenty of bases are being captured within the 45 minutes. And what is wrong with having a battle for very contested field lasting over an hour? The whole point in basecaptures, from a game designing viewpoint, is to initiate combat, a battle. A protracted battle is an absolute "win" in this regard. Of you make captures too easy, there will hardly a battle. If you make them too difficult, nobody will try. And while they have become more difficult, I don't see people not trying any more. The main difference is that bases are no longer being sneaked that easily (though it still happens), and steamrolling the has become a bit more difficult.
But let's look at your proposal in detail:
"Respawn timer starts only when last building has been destroyed"
That means town buildings will stay down indefinitely until the last building is going down. In other words, one side can kill town buildings here and there, all over a front, without having to worry about the timer. The attacker never has to concentrate on any target, he can easily avoid combat by switching his point of attack. Quick raids for a few more buildings here an there. No reason to press the attack. No reason stay and fight any defenders.
In the end, you will have a lot of towns that are down to a handful or even ONE building. Particularly for the outnumbered side, it's about impossible to mount any successful defense against this. All that is needed for the attacker is another quick raid vs a town with only one building, and that can happen any time. Now, next hour, in three ours. And you can bet on it: It will happen when nobody is looking.
So effectively you are reducing the towns to a single object. You are vastly boosting the attack, while almost completely crippling the defense. The result: Much less combat, much less battles. That's about the worst thing that can happen for balance & gameplay.