My way works as long as P(X>E(X)) = P(X<E(X)).
Yes, but the 100 tosses don't necessarily reveal what E(X) is. If the coin was fair, it would be irrelevant, what the other one chooses.
I think PS's method is fair, but here's another one, which I hoped you'd come up with:
They do double tosses, HT means ParadigmShifter wins, TH means DutchFire wins, and HH and TT means they'll toss again. If the coin lands H with the probability p, the probabilities of HT and TH are the same, namely p(1-p).
I suppose ParadigmShifter's method is quicker, but what's remarkable with this method is that you can make any random thing a perfect coin! Let's say you have a wheel divided into three sections, A, B and C. They look like equally big, but they don't even have to be! Now you choose that Ax means win for other party and xA for the other. Here x is B or C, and they do double spins, xx means they'll spin again.
Notice, that this assumes only that there is a constant p, which is the probability for one of the options to turn out, so this could -at least in theory- be used to find out whether a coin really has a constant probability to end up H or T up. Or to be more precise that how probable it is that there is such probability. I have read that there have been empirical investigations into the coins and dice, and the result has been that the used ones were unlikely fair. I'd be happy to know whether this thing has been investigated empirically.
EDIT: Shoot off does the same trick too, though.
And 0.999.....=1-thing, there has been debates about it here, and the last one of them was so depressing that I didn't visit this place for months.