Pretty sure its fine to go with Thread.Sleep in AB. As AB Plugins are the only thing I do not Code in the Unity Engine my knowledge with non Unity stuff is limited.
In Unity you could just do it with a Coroutine:
void Start()
{
StartCoroutine(Example());
ThreadNotBlocked();
}
IEnumerator Example()
{
DoStuffOne();
yield return new WaitForSeconds(5);
DoStuffAfterWait(); // This will execute 5secs. after yield line was reached.
}
So what this would do is it would execute DoStuffOne() and righter after that it would go on with the Code below StartCoroutine() as is would not block the Thread, 5 secs later, it would executes stuff below the "yield return new WaitForSeconds(5);" Line.
I havent realy looked for a non Unity solution yet as there was no need to keep the main thread unblocked yet, I would however be interested too.