質問です

func( key )
{
;(ここで色々な処理)
Send, {%key% down}
keyWait, %key%
Send, {%key% up}YES
;(ここで色々な処理)
}

$a:: func( "A" )
$h:: func( "H" )
$k:: func( "K" )

キーリピートさせないため&他にも色々させるためにこの形を取っているのですが
これだと複数キーを押した際にkeyWaitが蓄積されていく形になり
例えば「H」押下→「A」押下→「H」離す だけではHがupされず その後「A」を離した時点で初めて「YESYES」と出るのですね
1キーごとに独立したkeyWaitをさせるみたいなことってどうしたらできるでしょうか?

Inputって今まで使ったことなかったですが、keyWaitのところをとりあえず
「Input, UserInput, V, %key%」
「Input, UserInput, V, %key% up」
「Input, UserInput, V, {%key%}」
「Input, UserInput, V, {%key% up}」
辺りからIf ErrorLevel〜 みたいにしてもInputコマンドのEndKeys引数は(当然かもしれませんが)押下しか検知してくれてないようで…