So what is the ultimate Joule Thief? How can you really get more efficiency?
The answer is to abandon the whole Joule thief concept and do it with a microcontroller or a pair of CMOS 555 timer chips.
What is a Joule Thief really?
A Joule thief is nothing more than an inductor connected to your voltage source on one side, and an opening and closing switch that connects to ground on the other side. The end of the inductor that connects to the switch also connects to a diode to collect the energy spikes and pump them into a load or into a capacitor.
When you reduce it to its basic form, a Joule Thief is a pulsing inductor that gets its energy from a voltage source, typically a battery. The pulsing inductor discharges it's energy into a load, typically an LED.
A timing source controls the switching of the Joule Thief. You pay a price in power consumption and have limited control over the timing source when you make a standard Joule Thief circuit. The timing source comes from the trigger (a.k.a. base) coil and that consumes juice.
Therefore the solution is to switch over to a more intelligent timing source and get rid of the Joule Thief circuit altogether.
The more intelligent timing source could be a microcontroller. All microcontrollers have built-in hardware timer registers that can control the frequency and duty cycle of a square wave on an output pin. This gives you the ability to have software control over the timing signal generated by the hardware that is built into the microcontroller. You could write a simple program that reads some of the I/O bits that are configured as inputs. You could have switches that control frequency up and down and duty-cycle up and down so that you could adjust your frequency and duty cycle of your timing source "live" while the microcontroller runs. The microcontroller would consume a small fraction of the power that the Joule Thief consumes in overhead to do the timing function.
Another option would be to use two CMOS 555 timers. One 555 runs at a variable frequency and connects to a second 555. This gives you the running frequency. The second 555 runs in "one-shot" mode and gives you an adjustable pulse width to turn on the switch. This setup would consume a small fraction of the power compared to the JT also.
There you have two options for a rock-steady, reliable, and flexible timing source for switching the inductor current on and off. Both of them would consume almost no power. You could have a separate 4.5 source for powering the timing source.
Then, it would be up to you to pick the switching transistor and inductor/toroid setup. You would have the ultimate flexibility here, pick your transistor, pick your toroid, decide how many turns of wire. There is nothing stopping you now. You know that you have a reliable and flexible timing source, and you can mix and match any coil configuration you want. You could probably fire Xenon flash tubes from disposable cameras, neons, as many LEDs as you want, charge any capacitor at any rate that you want, control exactly how much energy you put into the coil before it discharges, the sky is the limit.
For example, if you want to light a CFL, then you could lower the switching frequency to 70 Hz, just above the human eye's ability to perceive flickering. Then you could chose your coil/toroid, and then play with the "on" pulse width to put the exact amount of energy that you want into the CFL for every "burn." Or you could fire the CFL at a much higher frequency and have a continuously sustained plasma inside the tube. That may have certain advantages. Like I said, the sky is the limit.
By using a microcontroller or a dual CMOS 555 timer setup, an astable multivibrator triggering a monostable multivibrator, then you have complete control over efficiency and power consumption. For every load there is an optimal configuration of inductance and switching time to give you the best performance. If you also factor in cost, then the optimal configuration may change.
One serious option is to go air core. Why go air core? Because all toroid cores burn off energy, they are "lossy." If you use an air core inductor, then there are no energy losses associated with a ferrite core because there is no ferrite core anymore.
What I described above is the next logical step in experimenting with Joule Thieves - move past them and do a completely new design that does away with the constraining Joule Thief "transfomer" and switch over to a computer-controlled or programmable-555-timer-controlled switching function that drives your choice of transistor and coil.