however you are assuming that I have some level of basic programming foundations.
No, I'm assuming you have some idea how you would perform the task, and that the difficulty lies in converting that thinking into code that the Arduino can execute.
That's why I steered the discussion away from how to make the Arduino perform the task.
I am afraid that you think I am smarter then what i seem to be, he he.
That could definitely be a problem. On the other hand, if someone trusts you with a loaded gun, there must be some hope.
Lets say that at 13H00 we want the servos to start moving.
we check the watch to see what time it is.
If it is 13H00 the servos will be told to start moving.
Of on the wrong foot already. The time to start is when the function is called. That time doesn't matter, except that it is the reference point for all future times.
If you were using continuous rotation servos that moved until told to stop, then your approach would work. The servos you have though are like teenagers. You tell them to do something, and they work while you watch. Turn your back for a minute, and they stop.
So, you determine that it will take servo P 110 minutes to sweep the whole range (of 110 degrees), so, once a minute you need to kick it, and say "Hey, lazy, move to position n", where, of course, you have to figure out what n is, based on how many times you've kicked the lazy servo.
You determine that servo M will take 88 minutes to sweep the whole range (of 110 degrees), so, once a minute you need to kick it, and say "Hey, lazy, move to position n", where, of course, you have to figure out what n is, based on how many times you've kicked the lazy servo.
Now, clearly, the amount that servo P moves to each time you kick it will be different from the amount that servo M moves to each time you kick it. So, you need to keep track of two different positions, one for M and one for P.
You will also note that it is not necessary to kick servo M every time you kick servo P, since M will be done before P is.
In this story, the things that Double() does not know are how long P is supposed to take to sweep, and how long M is supposed to take. The rest of the information that it needs IS known (which servo pins to kick, and how far to step each time it is necessary to step.
So, does this help you see how to make the Arduino move the two servos in different periods of time? The key is that each servo moves a different amount in a given period of time. The end of that period of time can be determined by millis(), and Double would be called many, many times before the servos reached the end of the travel, some times doing nothing (OK, most times), but occasionally, kicking the servo into gear to move a little.
Or, the end of that period of time could be determined by delay(), in which case Double() would block until both servos had moved the required amount.