Die Schreibweise (true << LED1NR); ist nicht sehr glücklich. True ist nicht so einheitlich definiert, außer das true nicht 0 ist. Besser (1 << LED1NR) schreiben.

Bei der taste funktioniert es dann vermutlich nicht:
PORTB1 wird kaum als (PORTB & 1) definiert sein.

Selbst dann kann die Taste die LED nur anschalten. Einmal an geht sie nicht mehr aus. Wegen der Pullup-widerstände ist die Logik dann vermutlich auch noch invertiert - ein gedrückte Taste wird eine 0, sonst 1.