For me this looks mor like a control flow topic on async method calls. You should definitely check out C# 4.5 async and await pattern to work with async code. This helps you structure the code without the callback hell.
You can also await all results or any result of your multiple operations.
//pseudo code from the top of my head
var perperationTask = service.PrepareStuffAsync(parameter);
var parameterATask = service.GetParameterA(value1, value2);
var parameterBTask = service.GetParameterB(value2,value3);
await Task.WhenAll(settingsTask, reputationTask, activityTask);
PreperationSettings settings = perperationTask.Result;
int parameterAResult = parameterATask.Result;
int parameterBResult = parameterBTask.Result;
await calulation = service.CalculateAsync(parameterAResult,parameterBResult);
you should be able to wrap this in a try catch block and use classic error handling.
So async await helps to simplify async programming... read more here: Asynchronous Programming with Async and Await http://msdn.microsoft.com/en-us/library/hh191443.aspx Control Flow in Async Programs http://msdn.microsoft.com/en-us/library/hh873191.aspx
HTH