I solved a similar scenario using the multiple macros method but I actually think I did it in a way that makes it pretty simple and should work for you as well.
First because you can't use shift-P-1 (or even shift-P-! as your example shows) I use the one hot key to activate the conflict palette, and then a second key to pick which option i want. So Shift-P to bring up the menu, then type 1 for position 1. (My example uses option+ctrl+P to avoid conflicting with me normally typing Shift P)
First I create a subroutine macro that takes a single parameter, this parameter will be the name of the macro that called the subroutine. It'll do different things based on the name of that macro. My example just briefly displays a message, but you get the idea.
That macro is just a subroutine, no hot key trigger. Next I create one macro for each position, but they are all identical, same hot key, same actions. Only thing that differs is the name of the macro.
Now to add additional positions just duplicate the macro and change the name of the macro. that's it, no other code to adjust in these macros. In your subroutine just add another switch case to setup what you need.
One other thing i would do is group all these macros and the subroutine into a single folder, than make that whole folder only active in InDesign. Then your Shift-P hotkey won't interfere in other apps.
Wiki page on Palettes
Wiki page on Subroutines
Wiki page on ExecutingMacro token
Example has 4 of the position macros and my example subroutine. I used letters for the beginning of the macro name because you can put 16 in a row and can select that option from the Conflict Palette with 1 keystroke.
[KvanH KM Discourse Macros] Example CP & Subroutine Macros.kmmacros (10.2 KB)