Thanks for the great input, everyone.
I'm relatively sure that my morale during the engagement was not that bad, most squads were at "OK", some were "CAUTIOUS" a few pinned and one ore two in panic. Ammo might well be an issue as I delivered heavy support fire for the advancing troops who then in turn gave heavy support fire.
As for the cease fires, it seems the AI doesn't always accept, at least not immediately. I was playing another QB with Volkssturm defending against a Soviet assault. The Russians bled out in my defenses (altough I did lose quite some men, too), and their armor fell prey to my Panzerschrecks.
Not sure if there weren't more troops to come I asked for a ceasy fire at turn 25 (of 30+). At that point I still held (barely) onto 4 of 5 objectives, and it was more or less a matter of time till they'd fall.
I asked for a ceasefire to preserve a win, but the AI didn't accept, instead we played till turn 33 (tactical victory for Germany ). I assume that morale/overall situation plays a role in the AI accepting the ceasefire?