It would be good if we had something that was neither excessive verbose
nor painfully terse, required nothing but ASCII, that was similar enough
to dict unpacking to suggest a connection, but without being confusable
to anything else even to newbies, was self-descriptive without needing
much or any explanation, cured Covid-19, brought peace to the Middle
East, ended poverty, and improved the level of political discourse on
social media.

But I fear we may have to relax the requirements somewhat :-)

My requirements for this syntax are:

...

- it ought to be something "like" an expression, rather than a mode
  that has to be turned on and then applies to the end of the function
  call; 
- if it actually is an expression, that's a nice bonus, but it's
  not essential;

But the problem here is not that your proposal doesn't meet all the requirements, it's that you have different requirements from us. You are requiring something that looks like an expression even if it isn't. Chris, Andrew and I see "something that's like an expression but isn't" as a point against, not a point in favour.

Side note: what does this mean in your proposal? I'm guessing it's a SyntaxError?

    foo(a, b, **{u, v}, c, d)