L'alternativa è scaricarti la versione 1.0.1RC1 dell'IDE di Arduino a cui hanno allegato anche alla versione Linux la toolchain patchata che funziona (quasi) senza problemi. Il (quasi) è riferito al bug del codice di dimensioni superiori ai 128 kB.
Penso che sia proprio la cosa più sensata, sempre se usi solo arduino ide e non altri ide.
Però se _delay_ms funge allora il problema e nel core Arduino, bho prova un po _delay_us(1000) occhio che sono 1ms magari li metti in ciclo 500.
La cavolata è che l'ide sopprime tutti i warning del compilatore, e così è difficile indagare.
Ciao.