Optimization is usually on a case-by-case basis.
For example, I notice you have a lot of ColorTimelines. If you have full-character animated colors, it may be faster to do that at the material level instead of as animated slot colors in Spine.
If you also know that some timelines aren't doing anything besides keying a pose that's exactly the same as the bind pose/setup pose, you could just remove them, and then add auto-resetting behavior to the code instead.
I've never seen 13 skeletons take 200ms to update though.
This gives me an idea. What if we could write code to detect those redundant timelines at load time? and then just remove them. I mean during production, it's still ideal to not add those redundant timelines in the first place for the sake of the animator's sanity (so the dopesheet is readable and easy to work with).