Idle does not work with Timer0

You just need to switch off timer0 interrupts before sleeping and turn them on again
afterwards, perhaps?

  TIMSK0 = 0 ;   // timer 0 all interrupts disabled
  TIMSK0 = 0x1 ;   // timer 0 overflow interrupts enabled