Egg, it's down to the large computation approach that has been used.

The only optimisations I can think of would be a dedicated engine like Greensock or Snap.svg with velocity.js, removing the top three animations, considering having a static coloured ribbon and overlaying and animating the cream part instead, using SVGOMG to chop down the <paths> sizes.

To maximise your repeat time of three separate animation speed, you make all co-prime. Try 2.3s, 3.1s & 2.9s.
Better too to increase the timings.

Acorn