Your main goal is to avoid error when executable is gone ?
If so You should use basic signal properties, You should learn about them in tutorial and documentation, they are more basic than yielding
Basically both yield() and signal connected nodes "listen" to built in signals. If You pick any node in editor, on the right of Godot UI You can change inspector Tab to see its possible signals. If You click Timer node You will see a lot of signals like on-ready, exit tree, and so on, and one of them is "timeout".
If You did it with AudioStream You should do it exactly the same with Timer node. Connect it, and instead of "finished" use "timeout" signal. Then set time and start the Timer. All methods for setting up Timer are in Godot help. I am not sure what kind of example You are looking for