решил в общем попытаться уже традиционно для себя через runAsync
runAsync и его использование
Пример для любознательных чтобы не копаться как передать параметры из таска обратно в основной поток
X++:
validationTask.Wait();
AsyncTaskResult asyncTaskResult = AsyncTaskResult::getAsyncTaskResult(validationTask);
boolean valid;
container messageContainer;
[valid, messageContainer] = asyncTaskResult.getResult();
infolog.import(messageContainer);