Thanks, Jerson and Alain. I'll keep both of those ideas in mind.
What I ended up doing that worked: Inspired by part of what Charles said, I check the condition of the switch in the interrupt handler and set a flag if the switch is closed. Then I check the flag during the MAIN loop. If it and another flag are both set, it kicks to a subroutine.
But nothing yet explains why I couldn't dependably perform simple conditionals on that input in the MAIN loop. It's a mystery.





Bookmarks