I need help with code!

in the meantime the servo will start doing all kinds of craziness due to undocumented behaviour of the servo.write() function for position values >200.

Nope. No craziness until you reach 544. It's even written in an accurate comment. Not that I ever trust comments.

void Servo::write(int value)
{  
  if(value < MIN_PULSE_WIDTH)
  {  // treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
    if(value < 0) value = 0;
    if(value > 180) value = 180;
    value = map(value, 0, 180, SERVO_MIN(),  SERVO_MAX());      
  }
  this->writeMicroseconds(value);
}