Acabei usando um método alternativo para trocar o controle e o capslock (encontrei um programa que permite alterar diretamente os mapeamentos de teclas no registro - sharpkeys) e agora uso o Autohotkey para trocá-los nas raras ocasiões em que preciso de controle para estar no canto inferior do teclado.
Meu script autohotkey agora é o seguinte:
settitlematchmode, 2
#IfWinExist, swapcaps
capslock::lctrl
lctrl::capslock
#IfWinActive
Então, se eu precisar trocar temporariamente as chaves de volta ao layout padrão, eu só preciso abrir uma janela cmd e definir seu título como "swapcaps"
Esta não é uma correção real para o bug, no entanto, é uma solução e funciona muito bem. (Indiscutivelmente ainda melhor do que a solução autohotkey original, que não era perfeita)