I posted a question about this in the APSL thread, here's DefiniteIntegral's response (reposting it here to keep the info with this thread.)
If you are wondering how to have dynamic speedmult with ScriptDragon specifically, this mod just executes the following code every 250ms (on default settings):
float carryWeight = Actor::GetBaseActorValue(player, "carryweight");
Actor::SetActorValue(player, "carryweight", carryWeight+1);
Actor::SetActorValue(player, "carryweight", carryWeight);
I believe this probably works because changing carryweight causes re-evaluation of speed, due to the fact that if the player becomes over encumbered then the speed penalty needs to be applied.
I hope this helps.
So you might try creating a compound effect that changes speedmult while also temporarily altering carryweight (so, in addition to boosting speedmult for whatever duration you're looking for, you'd also boost carryweight by 1 point for 1 second.)