Bitcoin Megastore, I'm getting around 10 days but there is no telling how that would play out without really testing it.
Every 9 blocks it can adjust as much as +/- 1.055x. That's approximately a doubling (or halving) every 117 blocks, or a factor of +/- 10x every 387 blocks. So 1 to 1e6 or vice versa would take about 2322 blocks, plus another day/144 blocks or so for it to stabilize (the filter is slightly under-damped, so it overshoots and then corrects; you can see that in the real results above). How that works out in real time is a different story, because obviously 1 block != 10min for most of the adjustment period. From 1 to 1e9 about 10 days sounds about right and I trust galambo to have calculated that correctly. In the other direction it'll take quite a bit longer, as at first ~19 years (!) will pass between blocks. Hard-fork is your only real option in that case.