Если позволите - можно я отвечу.
GREEN_X5 пишет:Не выгружается откуда, из процесса info.exe?
Именно так.
GREEN_X5 пишет:в том числе без Release формы, и в какой-то момент получил неизвестную ошибку, после которой не смог перезапустить скрипт со 100% рабочими исправлениями.
myForm = vcl.Form({Name = "myForm", OnClose = OnStop, Visible=true})
Нельзя создать формы (т.е. элементы vcl.Form) с одинаковыми именами в рамках одной запущенной библиотеки в рамках одного процесса. Вы же явно устанавливаете имя Name = "myForm", но форму не уничтожаете, т.к. нет Release. Значит при повторном запуске просто возникает ошибка "Форма с таким именем уже есть". Поскольку эта ошибка выбрасывает исключение - видим падение терминала.
В версии 0.5.0 VCLua это свойство можно не задавать вовсе, тогда библиотека заполняет его самостоятельно случайным значением, и проблем с повторным созданием формы (или запуском нескольких идентичных скриптов) не возникает. А т.к. это имя нам по факту нигде не требуется - такой подход (не задавать значение свойству Name ни для каких элементов) при использовании версии 0.5.0 отлично себя оправдывает.
GREEN_X5 пишет:1. Это тот самый "побочный эффект"? Теперь библиотека не выгружается из оси?
При завершении процесса библиотеки выгружаются.
Но не исключено, что при особо кривых сценариях завершения процесса ОС где-то не справляется с этой задачей.
GREEN_X5 пишет:2. Можно в таком случае поймать и прибить библиотеку в диспетчере задач, или где-то ещё?
В диспетчере задач вы видите процессы, запущенные из exe-файлов. Какие они при этом подгружают dll-ки - только спец. приборами можно увидеть.
В вашем случае, думаю, терминал QUIK упал так криво (это не претензия к терминалу, просто констатация), что OC не смогла корректно вычистить из-под него ресурсы, что, конечно, странно, но, вероятно, бывает.
Но основная мысль, которую я бы хотел донести, состоит в следующем.
Есть масса интересных задач создания собственно роботов в QUIK.
Здесь же мы мусолим очень частную задачу остановки скрипта, которая - по идее - для работающего робота возникает очень редко. Причем в чем проблема - уже понятно.
По-моему, нет смысла копать эту историю массово далее, т.к. это зряшняя трата собственных ресурсов Lua-программистов. Ну на мой взгляд.
Причем есть стопроцентный вариант - не завершать main(), останавливать робота кнопкой "Остановить" - и все работает надежно, 5-ти секундная задержка - ерунда. По-моему, это лучшее решение на данный момент. Причем вполне простое.
Варианты придумать что-то в библиотеке и, главное, дождаться исправления поведения терминала в этом месте - не исключаются, конечно.