It seems right for the first wave(s) to be coming from outside the walls and generally handled with ranged attacks/power/spells/etc.
Perhaps even let the PCs organize some defenses -- give them a fixed set of bows and magical attacks to distribute to townsfolk and then the PCs can just supervise the defense against first couple waves and jump in if/when they spot a more powerful attacker.
Then the arrows/spells/etc. soon run out and the waves just keep on coming... Suddenly instead of supervising the PCs have to plug large gaps in the defenses.
But it seems to me that it should progress fairly quickly to actual people being in danger. That is, not just wave after wave of "us killing the horde", but the PCs should have to rescue people. Either overconfident or overly self-sacrificing villagers who sally outside the walls and get cut off, or townsfolk inside the walls when the walls are penetrated. Whoever the PCs rescue might be added to their side to blast some additional low-level attackers on the next round, or may just disappear to safety, but I think the element of lives being in danger makes it much more compelling than just endless hack'n'slash.
Especially if the dead ones are going to be raised to fight against the town.
Another option is for traitors inside the town to open a tunnel, so just as the PCs are celebrating crushing the Nth wave from the comfort of the wall, there's a zombie breakout inside the town they have to rush to control. It may even be that the breakout is organized to take out the town's leadership, so once the PCs plug the tunnel, they find that everyone's looking to them for EVERYTHING and they can't simultaneously go back to the walls to fight and keep the entire place from falling to pieces.
Hey, this is starting to sound like fun...
