PWM control over RS-232 serial port

Hello, I need control PWM over serial port. I can on/off LED, but PWM doesn't work. Please help me.

#define RED      5
#define PWM_PIN  3

#define NEW_LINE "\r\n"

void setup() {
  Serial.begin(9600);  
  pinMode(RED, OUTPUT);  
  pinMode(PWM_PIN, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    char readFromPort = Serial.read();

    switch (readFromPort) {
    case 'a': //RED_ON    
      digitalWrite(RED, HIGH);
      Serial.print("OK_RED_ON");
      Serial.print(NEW_LINE);
      break;
      
    case 'b': //RED_OFF    
      digitalWrite(RED, LOW);
      Serial.print("OK_RED_OFF"); 
      Serial.print(NEW_LINE);
      break;
      
   case 'c': //PWM   - read number 0 - 255
      while ( Serial.available() > 0 ) {
        int readPWM = Serial.read();
        Serial.print("OK_PWM_"); 
        Serial.print(readPWM);
        Serial.print(NEW_LINE);
        analogWrite(PWM_PIN, readPWM);    
      }
      break;

    default:
      Serial.print("ERROR"); 
      Serial.print(NEW_LINE);
      }
    }
}

And what are the chances of there being a serial character available about 300ns after reading the last one? Hint: at 9600 bits per second, a character takes about a millisecond to send.