It seems I found the problem. XMEGA more complex device then old AVRs and has 'Interrupts and Programmable Multilevel Interrupt Controller'.
This is 'XMEGA A MANUAL' from Atmel:
The PMIC status register contains state information that ensures that the PMIC returns to the correct interrupt level when the RETI (interrupt return) instruction is executed at the end of an interrupt handler. Returning from an interrupt will return the PMIC to the state it had before entering the interrupt. The status register (SREG) is not saved automatically upon an interrupt request.
The RET (subroutine return) instruction cannot be used when returning from the interrupt handler routine, as this will not return the PMIC to its correct state.
Since port_switch always uses RET instruction to switch to another thread even in the ISR (when preemption occurred) instead of RETI, then the PMIC is blocked!
Can somehow divide the switching procedure in this case: one used RET, and the second RETI?
Now I will try to use global flag in IRQ_PROLOGUE and port_switch to make sure that the problem in this.
Also global interrupts not disabled in ISR - may be this is the second problem.