Okay, I have an imperfect workaround:
Capslock::Control ;--Holding Caps = holding Ctrl
Capslock Up:: ;--If you press Caps fast, it types "No"
SendInput, {Control Up} ;--For stability
If A_TimeSincePriorHotkey < 100 ;--Vary the time as it suits you
{
Sendinput, No ;--Replace with what you want Caps to do on its own
}
Else
return
return
If you press Caps down for longer than 100 ms, then release it, nothing will happen. If you press it for less then 100ms, then release it, it will type "No". If you press any Key while holding it down, it will carry out control+Key. If you hold Caps down for less than 100ms and manage to press any Key before releasing Caps, it will carry out control+Key and type "No". You can vary the timing. This is the best I could do, perhaps there is a better way.