TIMSK2 = _BV (TOIE2); // TC2 Interrupt Mask Register. Enable the timer 2 interrupt
Why do you enable the timer 2 interrupt if you just want to have a PWM output?
Is this your complete code or does that include an interrupt handler for that interrupt (which even might print something to the serial interface)?