Okay I see it now. Stupid when I think about it.
The delay is meant to act as a timer for the function, but this only works (as I have been saying) when it is paired with another function straight after (Which is what I've been doing when troubleshooting). I recognise the issue now, when isolating the functions it works how you have been saying as it constantly loops.
I basically need to integrate a stop after the delay inside the extend/retract functions to tell it to actually stop after this time limit until another command comes in, i.e.
void extendActuator() {
// digitalWrite(EnablePin1, HIGH); //enable board
analogWrite(PWMPinA1, Speed); //apply desired speed
analogWrite(PWMPinB1, 0); //apply no speed
delay(2000); //Delays the operation for 2 amount of time
analogWrite(PWMPinA1, 0);
analogWrite(PWMPinB1, 0); //set speeds to 0
}