note: this change is untested and intended primarily for review.
no idea (yet) if this helps with stability/lockups but while working through the ii code to understand how it all works i noticed that the queue manipulation in tele_ii_tx() isn't protected from changes made to the queue (at interrupt level) in handler_IItx().
protect tele_ii_tx from interrupts
....after examining the code more i don't think some of the above changes have any real effect so beyond the protection against an infinite loop and the volatile change the rest is not needed (since the normal event queue provides most of the needed safety).
i'm going to restructure this PR.