Is there a safer alternative than using delay when we want to ensure it is safe to run some code?

hold up. I think I am being really stupid.

the interface stuff all fires first because I am calling it first.

Dunno why this escaped me. So it makes sense that the clear stack happens after the interface stuff - nothing crazy going on at all.

I’ll award the solution to @pezzot1 since they’ve indicated it was probably a simple mistake and made me look closer into it.