the difficulty adjustment is a statistical interpolation mechanism, there are better ways to change it than the simple ~2week 2106 block cycle - using a PID controller mechanism, but it's easy tho get them wrong - the Verge blockchain, for example, used a continuous adjustment scheme with a time consensus and someone eventually stopped the clock
the one that satoshi chose, a simple proportional adjustment, works, it just undershoots and overshoots, and thus it has a long cycle time to narrow its error rate
i build a simulator for these things back in 2021 and experimented with parameters to find optimal numbers for a P-I based scheme that either moved smoothly or stayed stable against the actual hashpower on the network, but i didn't figure out how to make the derivative parameter work
i was doing some more reading on PID and learned that what you need is a high pass filter, which catches the high frequencies of the derivative parameter and that probably would have narrowed the adjustment down so much it is within about 10% of an accurate measurement of the real hash power at any given moment