it'sIt's probably too late but iI just did a similar thing with butterflies. I I made a butterfly, animated it with shapekeys, changed the min & max values of the keys to -1 & 1, then iI added a keyframe for the shapekey on frame 0 (you do not care about the value). In the graph editor iI added a 'sinus' modifier on the key value and voilavoilà, the butterfly movemoves the wings in a loop. The magic thing with this method is that you can now use the butterfly as a particle, the loop wontwon't be sync for all the butterflies since the movement of the wings is not hardcoded but calculated. (iI think).
Only one butterfly & only one particle system, but many many variations...
I didn't tested it, but if it works for shapekeysshapekey values, it should also work for bonesbone rotations, or translations.
Now i'mI'm trying to make them landed at start and fly away when a dummy comecomes close to them...