Bulldog and Robin are pointing you in the right direction.
Don’t look at the amount of source code, most of that bulk gets optimised away during compilation.
If you think of the eyebrows as ‘actions’, you may be able to setup your code as a state machine for each eyebrow servo.
Then simply setup the timing, and ‘start’ each eyebrow, and let the state machine take them through the required steps independently.
If you don’t need to vary the timing - even easier ! Just start when needed.
Of course you could also make it more complex - setting the rest positions, hence the ‘expression’ of each action sequence could be adjusted.