How to apply fcurve modifiers on top of each other, like object modifiers?
Have you considered the NLA?

Add Noise to your original fcurve.

Cycle with strip repeat
Add Noise to the NLA strip 



Add Noise to the animated influence 

Add noise to the animated strip time.



Produces some random patterns over the cycles, with a fair touch of overkill.  Just the repeat and noise modifier in the NLA would suffice.