Man bräuchte einen Debugger um das alles mal schritt für schritt durchzuspielen.
Dann lad Dir doch AVRStudio runter, ist recht brauchbar

Das mit den Klammern stimmt, wenn man sie wegläßt wird nur die Zeile, die darunter ist ausgeführt, der rest nicht mehr.
Komisch, das letzte Programm von Dir müßte aber funktionieren, ich hab es doch ausprobiert, mußte zwar was anpassen, weil ich M8 zur Zeit drauf habe, und meine Taster gegen GND schalten, ich taste mir die Finger wund, und es klappt ohne Probleme, beide LED gehen sofort aus(natürlich nachdem man den Taster solange drückt, bis beide an sind)
Hier mein Programm
Code:
#include <avr/io.h> 
#include <stdint.h> 
#define F_CPU 1000000UL
#include <util/delay.h> 
 

int main (void) 
{ 
  uint8_t i; 
  uint8_t flanke=0; 
  
  DDRB  = 0xff; 
  DDRD  &= ~(1<<DDD0); 
  
  while(1) { 
    if (!(PIND & (1<<PD0))) {
      if (!flanke){ 
	flanke = 1; 
	PORTB |= (1<<PB1); 
	for (i=1; i<=100; i=i+1){ 
	  _delay_ms(10); 
	} 
	PORTB |= (1<<PB0);
      }
    } else { 
      flanke = 0; 
      PORTB &= ~((1<<PB0)|(1<<PB1)); 
    } 
  } 
  return 0;
}
Gruß Sebastian