1) You refer to "Mode Logic" - Which Logic Execution Point in the Timing Cycle are you you referring to (Is it the Default Logic of LS ) ?
You must be using native development then...
Mode logic is (theoretically) executed whenever you (i) enter a cycle/subfunction/LS/whatever, or (ii) you change screen mode. It used to be the 'default' logic in pre-5.0 PRO-IV, IIRC; it's still there as the entry logic in native @MOD or @S or whatever it is.
Entry logic is (theoretically) only performed once, when you enter a cycle/subfunction/LS/whatever. Native dev on v5 makes you window on some obscure field to find this one, I seem to remember.
This kind of reminds me of the (v4.0 I think) bug where UMSG("",-1) suddenly caused a core dump on UNIX systems. Random changes to execution of basic functionality are what make us all nervous about the way PRO-IV 'works'.