It was very interesting to follow this discussion, since I've recently worked on solving essentially the same problem. I designed the analog front-end for a high-dynamic range current/power logger as a semester project at my university. We are planning to release the design data in the next couple of weeks, so it might also be interesting for you to look at our design.
We wanted to design a portable device, that you can use to log the power consumption of a low power / energy harvesting device. We built a analog front-end cape (shield) for the BeagleBone to sample 2 current and 4 voltage channels at the same time. The BeagleBone then stores the data on a MicroSD card and allows the control of the measurement via a webserver. The maximum current it can measure is 500 mA and the RMS noise floor is about 1.5 nA (172dB SNR @1ksps). Our sample rates / bandwith are somewhat lower than what you're talking about: 1ksps nominal, 64 ksps maximum. On the other hand, we support longer-term measurements (hours, days).
We achieved this high dynamic range, by having two different ranges and automatically switching between the two. We have a high range, which covers 2-500mA and is a regular shunt current meter with a 50mOhm shunt, and a high-bandwidth instrumentation amplifier. The low range is a feedback current meter with a feefback resistor of ~1kOhm. We can use the high range for range switching, since it is always valid, using a window comparator. Then we just use two MosFETs two control the path of the current (the gate-source leakage was no problem with our MosFETs, but the gate charge was). We always sample both channels and then re-assemble the current waveform later.
There were some struggles with accuracy, drift & stability, but in the end, the result was very good, and we manufactured a small batch of these loggers (but the design is not really optimized for sale).
We have some additional ressources, if you're intersted in more details (or you can also contact me):
Edit: Updated links