FNEI is consuming a quite significant amount of time in it's on_tick callback if we consider that it is "only" a button with a dialog.
A quick fix is to have a "if event.tick % 30 == 0" around the body of the event. I would very much appreciate if you could add this.
What you could also do is have a counter that counts the open dialogs. And register the on_tick if the counter gets >0 and unregister it if it is back to zero.