QMK does have this, unless I’ve misunderstood your use case. My QMK keyboard has CAPS mapped to ESC when tapped, CTRL when pressed with other keys. In my keymap.c file, I’ve put my caps key as just:
I ended up putting arrow keys in my 60%, which shifted the layout (PCB limitations) to where I ended up having to sacrifice my / and ? for a shift key (to fit the empty space). So I ended up having to do something similar. Holding it down and pressing other keys makes it function as a shift. Clicking it by itself yields a period, and clicking it by itself with the other shift does a question mark. QMK is freaking awesome.
MT(MOD_LCTL, KC_ESC)