I feel like what you have is going to be entirely useless, and cause more issues than you would like.
If you are committed to making this async, I'd honestly just call the event as async in every onLoop, that way you don't have to worry about stopping the thread if the script stops.
If you aren't committed to async, I'd just have it call normally as its probably not going to slow your script down much at all, and then you don't have to worry about the bot trying to complete multiple actions at once.