@iarvi : So it has been confirmed by Martin, that it is by design. I would also prefer this way, so no logic flaw if one execute faster because of the timeout. Actually there are a lot of action/condition that has the ability to halt flow just like confirm dialog. Speech output will also halt the flow until the whole text has been finish. Execute command, HTTP request, where there is progress and timeout will also halt the flow. Bluetooth LE Device available, Init variable location, read file/write to file; there are still many.
Parallel style should be use carefully. I still prefer to use it only when there is just one action or in multiple choices.
Separating to another flow will require redesign for the whole flow (especially when there is variable involved). But seems to be the only solution for the parallel style branching. Just compare it, do the parallel style worth the time for redesign to a separate flow? Or it is better to just keep them in series and in the same flow?
Flow separation is better choice if you started to have a quite complex flow (let say more than 25 elements). I tried to download the basic tool from the flow sharing section. The flow is so gigantic that my phone lags when dragging around.

It would be better to separate it to 5-10 flows rather than combining them into a single one.
@Martin : I think Iarvi want some way to allow that single element to be executed separately from the main logic.
In tasker, at some action such as "Say" (equivalent to Speech Output), there is additional option "Continue Task Immediately". If this is checked, then the task will directly continue to the next action while the speech is still being spoken out. I think, under the hood, when this is checked, that "Say" action will be executed in separate thread/process, so it doesn't interrupt the main task flow. Similiar to putting it to separate flow with only just one action.
Automate also has something called "Fork", starting a new fiber (running flow) inside a running flow. Where that fork branch will execute on its own logic. I don't have much experience with it, only testing for a while. But I think it is the same concept, executing that action in separate thread/process.
So if there is additional option in Automagic to "continue immediately" for action/condition that has the halting power (or timeout), we can use it to control the way the flow executes. I agree to separate the branch flow so it doesn't interrupt the main logic. But at some occassion where the branch is only single action, we still wanna continue the main flow.
Example : we can make flow speaking some tutorial or welcome greeting; while at the background, the main flow is downloading some data, parse it and output the result. By the time the speech finish, the data has been parsed already and ready to be output to the screen. If the main flow is waiting for the speech output to finish first, then it will take some additional time for the processing again. If we separate it to another flow, that flow will be one trick pony, just contain a single action (speech output). And another problem for separate flow is the variable passing should go thru GloVar (inter flow), which make it slower.
So far I am good with current flow concept. If it is going to be implemented, This "Continue flow immediately" must be properly planned. When I research about automate, several comments stated that the fork can cause chaos or logical loop if not designed properly. So maybe start from small first, example try only that speech output first. But I think adding this will require to revamp the whole execution concept of the flow. I will prefer a stable flow execution rather than implementing something that will break so many other things.