if (PIND & T1)
{
PORTD |= LED1;
}
if ((PIND & T1) && (PORTD & LED1))
{
PORTD &=~ LED1;
}
es geht leider immer noch nicht!

du musst eine Variable verwenden die getoggelt wird sobald du die Taste drückst. In der While Schleife fragst du dann einfach die Variable ab, ist sie auf 1 -> LED ein, ist sie auf 0 -> LED aus.
kannst du mir vielleicht ein Beispiel posten?