Hello Tellrell,
the description that you are making as a possible solution to your problem sounds very reasonable in many ways. As an informative example for the command messages. you can check the "uhd_msg_tune.grc" example in gnuradio/gr-uhd [1] where the uhd control over message is shown.
A second block that will only issue the messages based on a tagged input might be superfluous, as you can also add a message port in the original block that passes messages asynchronously containing the command to the uhd sink. However, without knowing deeply what the overall purpose of your application is, all solutions seem reasonable. Maybe you find the second block that you have in mind (the one that generates the command for uhd based on a tagged stream) useful in other applications, so its development might not hurt.
Regards,
- Nicolas