My idea to help war mismatches:

Continue matching clans the current way with one addition:
As soon as two clans are matched defensively, the matchmaker compares both clans against each other based on offense alone, with most of the weight being on the top townhall level brought to war and little importance on low th level offense.

If either side is discovered to have an unfair offensive advantage(excessive amount of engineered bases, extra th11s due to sandbagging, etc.), the match is tossed out and war search continues.