So, I came up with this: multiply the number of wins by the percentage of wins. Would that work?
In this case a player A with a winning pct of 100 an 40 challenges would still be ranked below a player B with a winning pct of 50 and 100 challenges, which would still be very alike to your example.
I think the main problem is that if you just compare the winning pct of players, you can easily get a better one by always playing against the apparently weaker players, but if you just take care of the among of wins a case like Demagog and others mentioned can appear.
So wee need a system where it makes sense to play not just against the lowest ranked players as well as to play not just a few matches and then stop due to the good winning pct.
a few suggestions:
1) a volume-based system with a maximum among of challenges you have to play. so a player with much more time then others wouldn`t have an advantage.
2) a pct-based system with minimum among of challenges you have to play. if you have to play lets say at least 20 challenges then you can`t play one, win it and rest for the rest of the league with a 100 pct.
but in both cases it wouldn`t make much sense to challenge an apparently strong player.
so I´d think something like an elo-system would be great where winning against a high ranked player is worth more points then playing against a lower ranked one.
although this would require much effort...