It kind of depends on how you mean.
The commands by it self are not async, But FileOperation, Folder Calculation, and other things that take time are run in the background.
But UDC commands by them self are not Async.
CustomCommands are issuing the command via the UI. (Or more like the UI is issuing the same command like the CustomCommand does) Like if the user selected the command. But since CustomCommands are only 1 lines it is normally not an issue.
On the other hand, MultiScript command CAN be run in the background. (With a special option set at the top of the script) However, Depending on what they do it can be bad to run them in the background. specially if you call CustomCommands from MultiScript. Or if They call like GetAllSelectItems. and this is done after something else that took time, Becuse if the command is run in the background the user might have navigated away. And The script will then pick up the wrong thing.
If you have a special case in mind where you have issues let me know and I will see if I can do something to make it work.
(Sure you can just mail be direct if so wanted )