tldr. it feels that possibly timelines due to their nature of taking in element values straight away (not at the time of playing), might be the cause of glitch because values are constantly changing especially that its 3 timelines controlling elements.
I am trying with overwrite both auto and true, but it's not working correctly.
There are two problems in which focusing on the second is more important.
The first one is the issue of inputing, in this case hovering, as Blake mentioned.
There are methods to solve this, one being what Blake suggested.
The result should strive to avoid triggering, hovering on/off , in a consecutive way.
Here especially as hovering off reverses() the timeline.
The second is really the overwriting issue.
What seems a viable solution to me possibly presents a cornerstone mechanics for interactive control of multiple elements.
On each hover, a timeline is created with .to().
At that moment timeline renders and picks up the current values in order to create the interpolation. And it starts interpolating.
On a new hover, the same thing is repeated, the then-active timeline is paused/killed, and a new one is taking over.
This seems plausible.
In terms of Promise.All, it seems to me that it is better suited for chaining timelines/animations.
Here it is taking over method, for multiple elements at the same time.
Is this possibly not well suited for GSAP timelines?
I pondered possibly trying to do this with JS/classes/CSS/transition.
A bigger overkill would be canvas I presume.