上で書いた長押しが反応しないというのは、下記の長押しした際の動作がききません。
キーボードのキーに割り当てると反応するので、マウスの仕組み上なのかなと思っていますが、
下記以外でも、長押しした場合と、ダブルクリックした場合で動作を変えるスクリプトを教えていただけないでしょうか。
v2です。

XButton2:: ;
{ ; V1toV2: Added bracket
ErrorLevel := !KeyWait("XButton2", "T0.3") ;0.3秒対象キーが押されたかどうか
If(ErrorLevel)
{
send "a" ;ここに任意のコマンド 長押し
ErrorLevel := !KeyWait("XButton2")
Return
}
ErrorLevel := !KeyWait("XButton2", "D T0.2") ;0.2秒対象キーが押されるのを待つ
If(ErrorLevel)
{
send "b" ;ここに任意のコマンド 1度押し
ErrorLevel := !KeyWait("XButton2")
Return
}
Send "c" ;ここに任意のコマンド 2度押し
ErrorLevel := !KeyWait("XButton2")
Return
}