Hardware interrupt calling two ISRs
Turns out that, in the Cortex Mx processors, interrupts don't work the same way as older 8- and 16-bit Arduino-style chips work.
As far as I can tell, there's only one ISR that's connected to the pins. In that routine, you've gotta check the status of the pins you are monitoring and set a global variable accordingly.
I'm not sure this is the only way to do it (seems kludgy), but it does work and it looks like it can scale to any number of pins. I'm using only two.
Here's my demonstration code if anyone is having the same problem. I put the debouncing code in the ISR. I know that's probably not best practice, but it doesn't take a lot of cycles and it's a lot easier than putting it in the loop.
#include &lt;Arduino.h&gt;

#define FRONT_DOOR_SWITCH A2
#define BACK_DOOR_SWITCH A3

volatile bool frontDoor = LOW;
volatile bool backDoor = LOW;

void isr()
{
    static unsigned long last_interrupt_time = 0;
    unsigned long interrupt_time = millis();
    // If interrupts come faster than 200ms, assume it's a bounce and ignore
    if (interrupt_time - last_interrupt_time &gt; 50)
    {
        int fds = digitalRead(FRONT_DOOR_SWITCH);
        int bds = digitalRead(BACK_DOOR_SWITCH);
        if (fds == HIGH) frontDoor = HIGH;
        if (fds == LOW) frontDoor = LOW;
        if (bds == HIGH) backDoor = HIGH;
        if (bds == LOW) backDoor = LOW;
        last_interrupt_time = interrupt_time;
    }
}

void setup() 
{
    Serial.begin(115200);
    while (!Serial);
    Serial.println(&quot;in setup...&quot;);
    pinMode(FRONT_DOOR_SWITCH, INPUT_PULLDOWN);
    pinMode(BACK_DOOR_SWITCH, INPUT_PULLDOWN);
        
    attachInterrupt(digitalPinToInterrupt(FRONT_DOOR_SWITCH), isr, CHANGE);
    attachInterrupt(digitalPinToInterrupt(BACK_DOOR_SWITCH), isr, CHANGE);
}

bool lastFrontDoor = LOW;
bool lastBackDoor = LOW;

void loop()
{
    if ((frontDoor == HIGH) &amp;&amp; (lastFrontDoor == LOW))
    {
        Serial.print(&quot;fd+&quot;);
        lastFrontDoor = HIGH;
    }
    if ((frontDoor == LOW) &amp;&amp; (lastFrontDoor == HIGH))
    {
        Serial.println(&quot;fd-&quot;);
        lastFrontDoor = LOW;
    }
    if ((backDoor == HIGH) &amp;&amp; (lastBackDoor == LOW))
    {
        Serial.print(&quot;bd+&quot;);
        lastBackDoor = HIGH;
    }
    if ((backDoor == LOW) &amp;&amp; (lastBackDoor == HIGH))
    {
        Serial.println(&quot;bd-&quot;);
        lastBackDoor = LOW;
    }
}