The code in Arduino Core works because the BUTTON_PIN has the pull-up enabled with pinMode(BUTTON_PIN, INPUT_PULLUP);. While in the CMSIS code, this is not the case for the PA02 (BUTTON_PIN). So the EIC_handler will never be triggered.
Try to change the line
PORT->Group[0].PINCFG[BUTTON_PIN].bit.PMUXEN = 1;
to
PORT->Group[PORTA].PINCFG[BUTTON_PIN].reg |= (PORT_PINCFG_PMUXEN | PORT_PINCFG_PULLEN);
I didn't check the rest of the code. Let's know if this works. If this is not working, please elaborate what exactly not working as commented by @thebusybee.