hi Arie,
as far I'm aware, there's no such as UI5 handling the threading.. it's usually browser-dependent. Most cases browsers run in a single process on the client machine while the nature of the javascript itself is to be single-threaded.
considering parallel javascript execution, the setTimeout will 'schedule' a function to run after X ms (which is not a guarantee btw) and give the thread back to the browser; it's more of a scheduler, thou it can be used to 'simulate' a multi-threading approach in some cases.
when using the OData model, these classes work with a sort of Promise model where you can schedule functions to execute once the "call" is sent, completed or ends in error.. the "call" is a XMLHttpRequest, which is another "native" browser-specific object, and each browser behaves a bit different from the other.
there is a maximum number of "concurrent" XMLHttpRequests in execution, and you can check some number here: Home - Browserscope - I'm not too sure if the number are totally correct, but this is a good indication at least.
as soon the request reaches your ABAP AS, you can run code synchronously or asynchronously - where usually sync. code would return you results of the method or operation you called, the async. by its nature would not (in most cases) - meaning, usually if you need to notify back the browser you can use a pooling mechanism (which works as a GET, and queries the status of something in your ABAP).
when you use a call function starting new task, I believe you can also register a handler to be executed during completion, where you could persist something to be queried over.. case you're running it on WebSockets (btw ABAP implementation is not great and it lacks a lot until 7.5 and stateful sockets is released), you can notify the client browser straight away.
what you probably need to do is analyse a few different ways of executing your code and checking which way provides best benefits, in terms of execution time and resource consumption.. I don't think there's a "cookbook" or formula for such cases.
Hope somehow this helps,
Dan.
PS: at this very moment I'm struggling with multi-threading in ABAP, it does work well when things are sparse in time but for real multiple concurrency with low latency modifications on a single object - I think you're out of luck.. but it does look like your problem is different from mine.