I think it depends on knowing the exact bias of the coin. For a simple example, if you know the coin comes up heads exactly one-third of the time (in the long run), then you can flip the coin twice, call it heads if you get heads once, tails if you get tails twice, do-over if you get heads twice. You get a decision 8 times out of 9, leading to a lower number of expected flips than for the von Neumann solution.
EDIT: There's a very nice discussion of the problem, especially the case where you don't know the bias of the coin, at http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf [link updated 19/07/12]
MORE EDIT: There's a fair bit of literature on this problem. Here's a sampling of what's out there:
MR0723740 (85f:60020)
Stout, Quentin F.; Warren, Bette;
Tree algorithms for unbiased coin tossing with a biased coin,
Ann. Probab. 12 (1984), no. 1, 212–222.
MR1763468 (2001f:65009)
Juels, Ari; Jakobsson, Markus; Shriver, Elizabeth; Hillyer, Bruce K.;
How to turn loaded dice into fair coins,
IEEE Trans. Inform. Theory 46 (2000), no. 3, 911–921.
65C10 (94A60)
MR1763481 (2001a:65006)
Ryabko, Boris Ya.; Matchikina, Elena;
Fast and efficient construction of an unbiased random sequence,
IEEE Trans. Inform. Theory 46 (2000), no. 3, 1090–1093.
65C10 (65C05)
MR1763482 (2001d:68177)
Näslund, Mats; Russell, Alexander;
Extraction of optimally unbiased bits from a biased source, IEEE Trans. Inform. Theory 46 (2000), no. 3, 1093–1103.
68Q99
MR2245123 (2007d:94019)
Cicalese, Ferdinando; Gargano, Luisa; Vaccaro, Ugo;
A note on approximation of uniform distributions from variable-to-fixed length codes,
IEEE Trans. Inform. Theory 52 (2006), no. 8, 3772–3777.
94A29 (94A45)
MR2300366 (2008b:65010)
Pae, Sung-il; Loui, Michael C.;
Randomizing functions: simulation of a discrete probability distribution using a source of unknown distribution,
IEEE Trans. Inform. Theory 52 (2006), no. 11, 4965–4976.
65C10 (68W20)
The first is a basic concept of probability: We assume such coin experiments to be independent. That means that no matter what happened before, the next throw will produce heads or tails with probability $1\over 2$ each (provided the coin is fair). Therefore, it does not matter if the lucky boy has gotten heads in previous tosses - the next toss is "fresh" and the answer is $1\over 2$ (if we are allowed to assum that the coin is fair).Your answer was to the difeferent question: What is the probability that the next four tosses produce four heads?
Similarly with the second question. You answered the question: What is the probability that the first toss is a 2 and the second toss is a 5? However, that the first toss is a 2 is already given. Hence the actual question is: What is the probability that the second toss is a 5? Answer is $1\over 6$.
Think of it this way: Given that you have tossed three heads in a row, what is the probability that after the next toss you have a total of four tails? Without the info about the first three tosses, one would calculate $1\over 16$. But in reality, four tails is not even possible if you already have three heads.
Best Answer
If you look at the probabilities of needing more than $2n$ tosses when $p=\frac12$, this suggests you get an expectation of $$\sum_{n=0}^\infty 2^{a(n)-n}$$ where $a(n)$ is the number of $1$s in the binary representation of $n$, OEIS A000120.
This is $$2^{0-0}+2^{1-1}+2^{1-2}+2^{2-3}+2^{1-4}+2^{2-5}+2^{2-6}+2^{3-7}+2^{1-8}+\cdots \\ \,\\ \approx 3.40147099057$$ which is also $\sum\limits_{n=0}^\infty \frac{1}{b(n)}$ where $b(n)$ is the largest power of $2$ that divides $n!$, OEIS A060818
but I do not see an obvious closed form.
Investigating further, this improvement of about $0.5985$, compared with the expectation of $4$ tosses from the traditional procedure you describe, turns out to be the best improvement from the traditional expectation of $\frac{1}{p(1-p)}$.
As the coin becomes more biased, the improvement of your method reduces towards $0.5$.
Here is some R code calculating the expectation:
giving for example
The number of expected rounds for some different probabilities of heads are: