Richtig, es gibt Lücken, wo der Servokontroller grad mit den Servos beschäftigt ist.
Du brauchst aber keine while(1) schleife, sondern du mußt nur den Error-code prüfen. Nur wenn ein Fehler beim I2C_Start war (kein ACK), dann die Sendung wiederholen.
Ich weiß jetzt nicht, wie und wo der Fleury seinen Status hergibt.
Hat I2C_START () irgendeinen return-code ?

EDIT : hab' ihn schon:
Code:
unsigned char i2c_start  (  unsigned char  addr   )   
   Issues a start condition and sends address and transfer direction. 
Parameters:
 addr  address and transfer direction of I2C device  
Return values:
 0  device accessible  
 1  failed to access device
d.h mach folgendes
Code:
void MoveServo(void) {    
   if   (i2c_start(0x68 + I2C_WRITE))
      do   {    }   while (i2c_rep_start(0x68 + I2C_WRITE)); 
   i2c_write(0x01);  // Command 
   i2c_write(0x01);  // Servo Nr1 
   i2c_write(0x02); 
   i2c_write(0x56); 
   i2c_stop(); 
}
Eben nur, bis ein ACK kommt. das ist in den meisten Fällen höchstens 1-2 mal