Without digging too deep into it, I see multiple issues:
PAUSE_BASE
always calls _TOOLHEAD_PARK_PAUSE_CANCEL which again calls other macros (do not feel like digging to through it)- When a macro is run, then all states / variables are evaluated at macro start and printer state changes are not recognized in within the macro. This might well bite you here. Also see Help with Macro: SET_GCODE_VARIABLE doesnt set my variable - #12 by theophile for a discussion on this
PAUSE
needs to always be combined with eitherCLEAR_PAUSE
orRESUME
or it will leave the printer in a confused state