using pullstime

This should do what you want (or close to it) if you add the missing code to increment 'buttonPushCounter' when the button is pushed.

#include <Servo.h>
Servo m1;
const byte buttonPin = A2;
const int ledPin = 9;

const int PulseTimeBase = 1250;
const int PulseTimeIncrement = 250;
int myPulseTime = PulseTimeBase;


int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;

void setup()
{
  // initialize the button pin as a input:
  pinMode(buttonPin, INPUT);
  // initialize the LED as an output:
  pinMode(ledPin, OUTPUT);
  // initialize serial communication:
  Serial.begin(9600);

  m1.attach(9);
}

void loop()
{
  buttonState = digitalRead(buttonPin);

  switch (buttonPushCounter)
  {
    case 1:  // First push: 1/2 speed
      myPulseTime = PulseTimeBase + PulseTimeIncrement;
      break;

    case 2: // Second push: 3/4 speed
      myPulseTime = PulseTimeBase + PulseTimeIncrement + PulseTimeIncrement;
      break;

    case 3: // Third push: Full speed
      myPulseTime = PulseTimeBase + PulseTimeIncrement + PulseTimeIncrement + PulseTimeIncrement;
      break;

    default:  // 1/4 speed and reset the push counter
      buttonPushCounter = 0;
      myPulseTime = PulseTimeBase;
      break;
  }

  m1.writeMicroseconds(myPulseTime );
}