This is a bug. The remaining three heroes should join immediately after the siege is lifted, regardless of the demon cities. In fact, all of Dungeon (3 demon cities and one League city) are captured by Ilia with her starting army and Chaos without any problems. Duncan and Isabel train troops for Frida, and Wulfsten's army is used where it won't be a big loss. Frida, with a huge army, defeats the gnome. Something like that, hero-style. The end.
Bug or not, that's exactly what happened to me. I immediately went to Horncrest, lifted the siege, and... the cutscene played, but they didn't join. That's why I replayed, taking one demon city beforehand, then everything was fine.
I didn't even see the Dark Castle at all, and I didn't take the Fortress or the Red garrison. Andreas did emerge from there, but Wulfsten, who was standing at the fork in the road just in case, defeated him. After Frida returned from the Dungeon, where she took 2 demon cities, I gave her all the human troops, and she went to Thor. Wulf cleared out the first gnome garrison, and then she did the rest herself. After taking the second one, the cutscene about Alastor played, and he kind of escaped through a portal. Then Thor had Tolgar with a decent army, but Frida defeated him with heavy losses. And that's it :) We're watching the story about the treacherous Biara and the whole group of heroes. Next, we move on to the Campaigns of the Prophecy.