Ok, after jumping through many hoops trying to get a recipe to execute dynamically using an IAssetReference, I finally had all the information I needed, and was ready to execute the reference.
I called the execute method on the IAssetReference, and recieved an exception that said I can't execute a new recipe while another recipe is running

. I was very disappointed by this, even though I think I probably understand why this is not allowed.
But this leads me to wonder if it is possible to queue up recipes for later execution. The documentation seemed to give me the idea that I could spawn recipe's dynamically, and maybe this strictly means create them dynamically, if so I'm a little disappointed as I have spent quite a bit of time on this.
Please tell me there is a way to actually
execute recipe's dynamically.
I basically created a main recipe that was gathering some project specific information that was supposed determine based on the input which recipes to execute on Solution Creation. I even created a base action class called ConditionalAction which executed either a OnTrue() or OnFalse() method depending on the result of a predicate expression which is evaluated using the evaluator service. But if I can't execute a recipe while another recipe is running then all I can do is run actions unless I create my own RecipeQueueingService.
If there is not a way to queue recipe's is their at least a post execution event I can watch for on a recipe, so that I can simulate queueing by delaying execution of a recipe until the post execution operation?
Am I possibly stretching the capabilities of the GAT?