The problem doesn't seem to happen when I release Right before Numpad2. It's as if pressing Right (Shift) prevented Numpad2 (Ctrl) from being released...
O problema que você está vendo é devido ao fato de que o teclado numérico é alterado por ⇧Shift . Pressionar ⇧Shift é semelhante a alternar a tecla NumLock , mas o efeito é mais complexo e não óbvio.
Por exemplo, pressionar Numpad-4 produziria os seguintes resultados:
│ Num On │ Num Off
──────────┼────────┼───────────
Shift Off │ 4 │ ←
──────────┼────────┼───────────
Shift On │ ← │ Shift + ←
Como você está remapeando → para ser ⇧Shift e usá-lo em combinação com uma tecla no teclado numérico, você está obtendo uma interação que está complicando o AutoHotkey e confundindo você com seu resultado inesperado (pode muito bem ser o logicamente correto , mas certamente um resultado inesperado e indesejado).
Tente alterar sua chave secundária de Numpad-2 para outra coisa que não seja modificada por ⇧Shift , como K . Você notará que não receberá mais os resultados inesperados.
Esse comportamento ocorre no controlador de teclado, não no software, então, infelizmente, se você precisar usar ⇧Shift como um modificador, não será possível usar uma tecla numérica para remapeamentos complexos como este.
Uma opção é usar o bloco de edição ou as teclas numéricas que não são modificadas por ⇧Shift (os operadores matemáticos, Numpad-5 e Numpad-Enter ).
Outra opção é escrever um script mais complicado que crie um gancho de teclado para verificar chaves em um nível inferior, para que ele possa verificar se a tecla ⇧Shift está desativada, então compensar conforme necessário.
(Eu encontrei este mesmo problema há algum tempo, quando escrevi um programa de inserção de Unicode. Eu estava tentando fazer com que ele suportasse a troca de teclas de certos caracteres, mas a modificação estava atrapalhando as coisas. Eu acabei recorrendo à última sugestão e escrevendo um roteiro complicado, mas foi frustrante, vertiginoso e acabou sendo meio que limitado.)