And as was pointed out, there is a large variation in the "time to solve", but perhaps if the 2 weeks to adjust were modified to something akin to a Kalman filter, see
http://en.wikipedia.org/wiki/Kalman_filter one might be able to shorten the "time to change the difficulty" to a very short window?
One could adjust the difficulty every block without any complex mathematics or issues with synchronizing times. Now mining is random we only know the time of the average block which is 10 minutes however each individual blocks time to a solution will fall into a bell curved (visualize a bell curve with peak at 10 minutes and a standard deviation of 10 minutes). If you simply looked at the last block the difficulty adjustment would just be tracking the normal random walk of bitcoin solution times. Bitcoin "solves" that by looking at a 2016 block window and adjusting it every 2016 blocks. However it isn't required that the adjustment interval and the averaging interval be the same.
For example a CC could look at time for last 2016 blocks to get the average time per block (and thus the necessary change in difficulty) but do that every block.
For example:
for block 2017 the difficulty is computed by looking at the time interval from block 1 to block 2016
for block 2018 the difficulty is computed by looking at the time interval from block 2 to block 2017
for block 2019 the difficulty is computed by looking at the time interval from block 2 to block 2018
...
But isn't that, then, just a moving average, all weighted the same. So an instant drop in hashing power, which is the question I think, would only affect the average slightly. If the latest, perhaps few, had more weight in the moving average, the "response" would be faster, I should think? This, in some analogous sense, is what a Kalman filter does.
I am looking at GetNextWorkRequired() in main.cpp and without comments, I will have to study it for some time to figure out how it is setting the difficulty, but it seems to be just the difference in time of the last 2016 blocks against the two week norm, limited to 1/4 if less and 4 times if more, with equal weighting of all blocks.
I like the idea of adjusting the difficulty more often than ~two weeks, though, as a start.
Ron