В этом коде нет потоков а значит все выполняется последовательно. Разобраться в ситуации помогает запись в лог.
SUB(подпрограмма)
LOGWRITE ("Начало подпрограммы")
WAITMS(100)
LCLICK(827,553)
WAITMS(200)
KEYPRESS(#DELETE)
WAITMS(100)
KEYPRESS(#DELETE)
WAITMS(100)
KEYPRESS(#DELETE)
WAITMS(100)
KEYPRESS(#DELETE)
WAITMS(200)
LOGWRITE ("KEYSTRING: ", $x)
KEYSTRING($x)
LOGWRITE ("Задержка начало: ", $y)
WAIT($y)
LOGWRITE ("Задержка конец: ", $y) //необходимая задержка
GETSCREEN(759, 201, 1345, 480)
IF_PICTURE_IN (759, 201, 1345, 480,"003.bmp")
LOGWRITE ("Найдена картинка 003.bmp")
WAITMS(100)
LCLICK(1200,640)
WAITMS(100)
END_IF
LOGWRITE ("Конец подпрограммы")
END_SUB
// Часть 2
GETSCREEN(759, 201, 1345, 480)
if_pixel_in(759, 201, 1345, 480, 5289606)
$x = 1
$y = 1
LOGWRITE ("зелёный +++++")
WAIT(10)
подпрограмма()
END_IF
// Часть 3
GETSCREEN(759, 201, 1345, 480)
if_pixel_in(759, 201, 1345, 480, 3618015)
$x = $x*2
$y = 15
LOGWRITE ("красный ",$x)
WAIT(10)
подпрограмма()
END_IF
WAITMS(50)