Although I agree with some of your ideas, the above idea is far less useful that having a new "Group Action", perhaps called "Asynchronous Group" which runs any enclosed actions asynchronously from the main macro (but still in sequence for its internal actions.) This would save Peter from having to add this feature to this action or to any other action (eg, the Speak command, which also needs this feature.) Instead, a single new action can create this asynchronicity. (Is that a word? The macOS spell checker says it isn't. But if Shakespeare can coin new words, so can I.)
I look forward to an answer too. I used to know how to do this. I think there are two totally different approaches to solving this using Custom HTML Prompt. One approach is using JavaScript, and the other is using HTML5. There are several websites online that teach you how to do this using HTML5. The one I used last was here. One of their subpages, I recall, illustrates the code for what you want to do. (Search for the arc() function on their site.)