I'm still not entirely sure what was going on - I know that the execute region didn't get initialized correctly, but doing that at a later point didn't fix the issue. Apparently forcing the header region to re-initialize does fix it, even though I was sure this was redundant. Also fixes a memory leak in UI code after preferences were opened.