By the way, not sure if it’s still relevant, but I was thinking a long time about how to solve the problem with concurrent function calls in blueprint, and the main problem was not just the concurrency in itself, but also the “context”, as in, the variables at the time of calling the function call.
In my demo game I have one big class in which I have all my network code (this was a mistake by the way since it causes the editor to lag severely now, too much code in one file apparently). Anyway, in that class, I have functions/events that code from elsewhere can call. Some network functions (like “change username” etc) also have parameters that are used later on (after the function call is done). This works fine (except for Objects which can get garbage collected while waiting for the function call), but, when calling the same network function twice, the parameters of the function are overwritten by the second call. Other languages got "context"s for this, as in, whenever a function is called, it has its own local variables, when a function is called twice, it doesn’t override each others variables, they both have their own stack/context.
I now think, to solve both concurrency as well as the context problem, each network function should be programmed in its own class. Then when it is required to run, a new instance of that class should be made, and the event/function should be called that will run the (latent) function call. This way, the function call can be done concurrently, plus, if there are any parameters or local variables, you can store them in that class, and each class basically has its own “context” or “stack” so variables won’t override each other. Not only that, but it will also divide your network code into multiple classes, so you won’t ever have the editor lagging because you put all the code in the same file.
I think handling network code that way in the UE4 is the best way to do it. It solves the concurrency problem, it solves the context problem, it’s just a bit of a pain to create classes in the UE4, but that little bit of extra effort saves you from a lot of problems you would have had otherwise.