Well, lots of dumb mistakes as I suspected.
Has to be x-action, not action.
So, for completeness this is what works:
And this returns right away because this workflow launches music without waiting for a return. So, from workflow's standpoint the workflow finishes immediately.
Closed and Solved
I thought this would be simple but app integration seems never to be simple.
I want to my script to invoke workflow, run a workflow action, and return to pythonista and have the script continue. Workflow will pass nothing back to the script so that complexity isn't relevant.
I don't really need to wait for success. The workflow script runs Apple Music app. I certainly don't want to wait for the song to play. I realize that pythonista doesn't support x-callback-url, but it's workflow that needs to callback, not pythonista. I realize that python won't like double curly braces, but python should never see them. They are part of the quoted url text string sent to workflow so that I don't need to put in the literal characters for spaces and punctuation.
Do I really need to even have the success clause? It seems like if IOS returns back to pythonista, the script should still be running.
This is the only line in the button action function. So, the script should be happily waiting in the event loop for the next button tap.
I must be missing something very obvious because it doesn't seem hard.