For anyone who does not know: the von Neumann method involves counting results only half of the time ('HH', 'TT' are not counted). So for every two coin tosses which are 'HT' or 'TH' you add 1 bit. So 1 bit for every 4 coin tosses on average.
You can actually make it more efficient, but I've never bother to talk about how you would do this on the forum since it is far easier and safer to just stick to the basic method and keep flipping until you have enough entropy. The more efficient method involves considering more than just pairs of flips. We know that HT and TH are equally probable, but by the same logic HH TT and TT HH are also equally probable. And these runs of matching pairs do not need to be consecutive. HH HT TT and TT HT HH are also equally probable, for example.
So for every HT you write down 0, and for every TH you write down 1. And then you also generate a completely separate second level sequence. For every HH you write down H in this second level sequence, and for every TT you write down T. You then run von Neumann's algorithm across this new sequence as well, generating 0s and 1s as before, but also generating Hs and Ts in a new third level sequence.
You can iterate this as many times as you like, and theoretically approach the maximum possible entropy you can extract from each flip. In practice, additional efficiency gains after probably the second level or so are probably outweighed by the increased complexity.