I'm not sure how to approach #2. Someone clever can probably come up with something better using the ideas here.
Alright for situation #1, where the leader knows all the evil characters, it is possible for good to win 5/6 of the time (the best possible, as with no knowledge the assassin can always just randomly kill one of the good guys hoping that it is the leader).
After gathering in the lair, any good person can suggest the following plan forward:
this strategy will allow good to win, so provably deviating from this plan will indicate you are evil
the characters should come up with a means of verifiably signing a note (possibly something as simple as an elaborate signature that no on there has the skill to forge, or more mathematically, publicly stating public keys for a signature algorithm)
the characters should go off in pairs to secretly discuss, until every possible pair has had a chance to discuss privately, and during this time the players will exchange signed notes stating (possibly lying) to each other one of the following:
3a) declaring themself as not the leader
3b) declaring themself as the leader, and stating who all is good
During these private discussions the leader, as he has knowledge of who all is evil, should declare "leader" to all good guys, and "not-leader" to all evil. Normal loyal fighters should just declare "not-leader" to everyone. Therefore the evil characters gain no information from these private discussions.
if a good player gets a message deviating from this rule, they can publicly release the verifiably signed message for that communication to out the evil person. So evil effectively must pretend to be normal good or the leader.
More generally, the strategy is for a good person to publicly expose any fake leader (release his messages) if they can prove they are fake without giving information about the leader.
For example, if a fake leader ever claims another person claiming to be leader is good, this outs themselves as fake, as this cannot occur for the real leader if the good guys follow the plan. Unfortunately, a good person might need to keep this to themself, as revealing this could reveal information about the actual leader. However if multiple "leaders" choose groups such that there is no consistent way for one to be real (for example two claiming each other as good, or three claim such that it makes a cycle), then the entire group is fake and should be exposed as the evidence doesn't depend on who the actual leader is.
Now the characters gather in the war room for some public discussion. Each player states which groups of good guys were declared to them by people claiming to be leader. (Note: only the proposed groups of good are released, not who claimed the group.)
If there is a group declared such that not everyone in the group states they were told they are in the group, then that group is clearly false (as good has no reason to deviate from the plan).
Since the number of good characters = 6, and the number of evil characters = 4, any group with the correct number of people will necessarily include at least two good. This means the evil characters don't have full freedom in how they mislead here.
If there is a player who appears in all proposed sets of good players, he must be good. All good players should release the messages they got from "leaders" to this player. Now even more restrictive than before, this player then can expose fake leaders whose group selections include each other in a revealing manner.
If there is enough information that every one should be able to deduce enough good players to succeed 3 missions without revealing the leader, someone can just explain it. Good, having superiority in numbers, can now ensure the correct mission teams are sent.
If there is currently not enough information to determine the correct teams to send on the missions, the mission captain picks a team which will eliminate as many proposed "good groups" from consideration as possible if it fails. If it is the leader's turn to be the mission captain, he should do the same, even if it means failing a mission, so that no information about the leader is lost here. If the mission wouldn't actually eliminate a possible "good group", and the person still insists on this mission team anyway, it outs themselves as evil and good can vote the mission team down. (Note this of course does not indicate good/evil for the team they suggested though.) So evil has to play along here to try to help narrow down a team.
If the mission fails, it should by design eliminate at least one, if not more, proposed "good groups". If the mission succeeds, it provides no information. Proceed to pick a team for the next mission.
Now let's analyze this plan.
There may not be enough information immediately available to succeed every mission. But I believe there is enough information here to guarantee succeeding at least three which is all that is necessary to win.
For simplicity I'll refer to a proposed group of good characters by someone claiming to be a leader as a "set". And we'll look at what information we can gain from these sets.
Some simple deductions:
Since there is only one real leader, once the sets are shared it is obvious to everyone how many people are trying to fake being the leader (even though they don't all know who specifically is claiming to be a leader).
Every time a mission fails, at least one set can be eliminated, so there have to be at least 3 fake leaders for team evil to have a chance. Less than this and straightforward application of the plan above is enough to win. So there need to be 3 or 4 fake leaders for evil to have a chance.
If a set is eliminated, a good player can reveal the message from that fake leader making it clear who at least one evil person is. Any set containing that character is thus clearly wrong as well.
Similarly, a good player can reveal a message from a fake leader if he claims that evil person is good. And so on.
If only three evil characters fake being a leader, then they can't win if two sets are revealed as wrong in a single sabotaged mission, so none can include another fake leader in their sets. This means all fake leaders must have 4 good characters for their set, to have a chance. So for the first three missions, chose a team from such an intersection. Either this team is actually good (so it won't fail, and good will win the first three missions), or if evil sabotages it, it will eliminate two sets (since regardless who was evil, they were in both sets) and thus evil can at most sabotage only one more mission (as only at most one set from a fake leader remains), and so good wins. Thus evil cannot win with only 3 fake leaders.
If there are 4 fake leaders (every evil character fakes being a leader), they can only afford to lose two sets at once on at most one mission, therefore at least two cannot include any other evil character in their set. Thus at least two fake leaders must select 5 good characters for their set, to have a chance. So if there are not two intersections of 5, play trying to eliminate sets as normal and good will win. Otherwise select from an intersection of 5 to send on the missions, and good will win.
Therefore team good can guarantee to win at least three missions without revealing who the real leader is.
For #2, it is very risky for the leader to reveal himself to anyone, since he doesn't know for sure who is good. Since there are more good characters, let's see what would happen if relied on chance and just publicly rolled dice for who to send on a mission.
chance of passing mission 1: (6*5*4)/(10*9*8) ~ 16.7%
chance of passing mission 2: (6*5*4*3)/(10*9*8*7) ~ 7.1%
chance of passing mission 3: (6*5*4*3)/(10*9*8*7) ~ 7.1%
chance of passing mission 4: (6*5*4*3*(2+4))/(10*9*8*7*6) ~ 7.1%
chance of passing mission 5: (6*5*4*3*2)/(10*9*8*7*6) ~ 2.4%
probability of winning > prob of winning exactly three > 0.167 * 0.071 * 0.071 (* 3 ways) + 0.167 * 0.071 * 0.024 ( * 3 ways) ~ 0.00253 + 0.00085 = 0.00338
The other ways of winning will contribute even less. So a random strategy is awful, with less than a 1% chance.
Let's try making it smarter:
If a mission succeeds, keep those characters for the next mission, else start from scratch again. Since the missions progress (or are equal) in difficulty, evil would be helping if they don't sabotage a mission just to ensure they can sabotage the next. So worse case scenario, evil sabotages every mission they can.
Ways to win:
win first two (third for free), same as prob of choosing 4 good at once ~ 0.0714
win first, lose second, win 3rd or fourth ~ 0.167*(1-0.0714)0.0714 + 0.167(1-0.0714)*(1-0.0714)*0.0714 ~ 0.0111 + 0.0103 = 0.0214
Others contribute less.
So this strategy gives roughly 10% chance of winning.
For #2, a cheap answer is for the leader to just guess who the unknown evil character is, and then use the strategy from #1. If he's wrong, he'll be revealing himself to an evil character and will get assassinated. He has a 1/6 chance of guessing correctly. Thus good can win at least with a chance (1/6)*(5/6) = 5/36 ~ 14% chance of winning.
Maybe there is some tradeoff solution, where less certainty of who is good/evil is traded for not fully revealing the leader (maybe he only reveals himself to a couple possible good guys, which is better than 1/6 chance of success).
But currently I'm not sure how to do that.