I accept of course your way to work but please accept as well that this command was created to run asynchronously.
Get something back: call, wait, wait, wait, use the result
Fine to use, easy to work, but does not allow to use the power of preemptive, of multi core computers.
asynchronously requires a different thinking.
You don’t wait, but you give a callback routine.
Then you pass work to another employee, you don’t wait for him to be finished (and do nothing in that time), you ask him to call back and return the result. So you give a callback number and maybe a case ID (invoice ID, etc)
Same in 4D with Call Form or Call Worker (or EXECUTE ON SERVER)
You pass a call back number. This could the client name, if running on the server.
It can be the worker Name. And a case ID allowing to know what to do with the result.
Very different approach, I know, not unusual these days.