Ah - I see.
[Clear as mud alert] - I'm able to reproduce this, however, the best that this can be fixed is that the value indicated for, 'Execute by name (Advanced)' must be cased the way you would want it to appear in, '{CMDWHENISAY}'. So, if your subcommand's, 'when i say' value is, 'New Command 3' and you execute it by passing in, 'NeW CoMmAnD 3', you'll get back, 'NeW CoMmAnD 3' in {CMDWHENISAY}. The reason is that the value being passed in is being used is because of dynamic/multi commands (so that you can execute a command by name by using just one element of a dynamic/multi command string). If your subcommand is 'New Command 3;New Command 4', the value established for the subcommand's command string (when i say) when it is executed is not, 'New Command 3;New Command 4', but rather whatever you passed in (which is set to lower and then compared to the dictionary - it's why you get back a lower-cased value). I don't know why this ended up this way. It wouldn't be hard to make the subcommand return the full, 'when i say', but I hesitate because that would have taken zero lines of code versus all this legwork. I also worry that the change that I'm making may break folks out there that depend on this being lower case.
Side note - I *could* go in and make it where it resolves the proper casing, but that would add an overhead penalty across the board for this type of execution.
Kind of a weird situation. Thanks for all the great info - the change will be in the next update!