Its broken in both directions.
Cap modifier works correctly and you'll increase the soul cap by 20 per necromancy troop added, but each necromancy is applied only at the end of battle and is applied multiplicatively up to the cap. The counter displays your souls gained as if necromancy had already applied. If the counter showed 63 in game, you actually gained 25 "raw" souls. Since you had no surviving necromancy troops, you gained 25 times your global multiplier, x1.9 in this case I'm assuming. Had you won with all three warlocks, necromancy would have triggered and boosted the "raw" value each time, rounding after each step and you'd have earned 25 * 1.5 (rounded up) * 1.5 * 1.5 souls, or 86, which would have netted you 163 after battle. What should have happened is that you should have gotten 63 * 1.9, or 120 souls, regardless.
Basically, this needs to be fixed in the same way it was fixed on Adobe, where the soul gain multiplier is set before battle and this modifier is applied at the end of battle regardless of which troops remain, so the soul counter in game is accurate regardless of how many necro troops survive (or get summoned in). I'm not sure of the relative difficulty of this fix, but I can see why it probably wouldn't be a priority right now judging by the other issues going on.
Bit of advice, though, if you are at the stage where you are struggling to win with a soul farming team, you might way to try treasure hunt to get some souls here and there instead, or just build a normal team around always having a soul generator with zero or one necromancy troops and go quantity of matches to get your souls over time. The valk/3x warlock configuration is usually reserved for after you have some max level troops and kingdom boosts on your side, at which point you can easily (and most importantly, quickly) win with 2 or 3 remaining.