Вообще, это проблема в Javascript, и в BAS в том числе, когда речь идет о ожидаемом времени срабатывания чего то.
Примеры:
Действие спать одну секунду будет выполняться не одну секунду, как ты думаешь, а не менее одной секунды. Даже если ты вызовешь функцию setTimeout с временем срабатывания 10 секунд, функция сработает точно не ранее, чем через это время, а не через 10 секунд. А может, теоретически, и через полчаса.И так далее и тому подобное.
Даже если ты найдешь способ в точно указанное время немедленное получения данных для всех потоков в одно и тот же время, это не значит, что они начнут работу одновременно. Так как потоки в BAS асинхронные, но не параллельные, а значит они зависят друг от друга.
Я бы попробовал использовать брокеры сообщений, пример RabbitMQ. Когда основной поток отправляет некое сообщение, а другие ждут, пока его получат в блокирующем режиме.
Но это все тоже будет работать не очень надежно, так как природа потоков.