I had the same problem and I have found what is the cause - when you kill every enemy soldier before occupying the village by infantry, than the mission will not end.
It is because the scripted event that "enemy is withdrawing" does not occur after you repel the counterattack.
It's funny, because to win you must leave at least one enemy soldier alive
P.S. I have a save with 1 enemy soldier left alive if developers want to reproduce it...