controlling speed of an action by driver or scripting
The NLA editor.  

Action Strip Scale.  

Halving or Doubling, (for instance),  the strip scale, doubles or halves the action speed.

Animated Strip Time.

The frame at which the fcurve is evaluated can be animated here, with keyframes, AFAIK not with drivers.


Some examples from python console on how to access with script

&gt;&gt;&gt; strip = C.object.animation_data.nla_tracks['NlaTrack'].strips['CubeAction']
&gt;&gt;&gt; strip.use_animated_time
True                                                                          
&gt;&gt;&gt; strip.strip_time = 100
&gt;&gt;&gt; strip.keyframe_insert('strip_time', frame=200) 
True