The decay should change according to how hard is getting a reasonable non-AAA score in the spiky section(s), and how hard the rest of the file is to AAA.
Anyway, an approach like Dynam0's formula is probably the most pragmatic solution. My suggestion would be trying to operate over the raw numbers of goods and then using the formula that already exists.
For instance, if the current formula is f(x, A) where x is the raw number of goods and A the current AAA-based difficulty, change it to some f(g(x,B),A).
g(x,B) being some formula where g(x,0) = x (I) and g(x,B) > x for B > 0 (II).
A simple example would be g(x,B) = ((5*x)^(1+c*B))/5, with c being some arbitrary constant to make the range of B suitable to show in the game interface (preferably an integer), and the 5 factor being there just to avoid oddities with 0.2~0.8 values.
(I) - So that by default any song would have B=0 and keep the usual formula
(II) - So silly stuff would be assigned some appropriate B value as needed to force a faster decay
I think this would be fairly intuitive to work with but I'm too lazy to test it out
On a side note, making a general difficulty calculator is trying to solve an even harder problem and trying to make inferences based on the inevitably noisy results.
While I don't think making one is a lost cause, it's way out of scope for what FFR warrants.