It should be enough to just call a second function in the “on space” event. Then when the first function finishes the second will be run.
While this works, if the function took more than one tick to complete would it break as the next function would be called prior to the completion of the first, which it is dependent on?
An Asynchronous function with a "wait for previous events to finish action" would likely also be unreliable as the function is recursive, so technically it finishes many times before actually being finished.