Task-level control problems are ones that involve significant coordination of planning, perception and action. Robot systems capable of performing complex tasks are typically composed of many concurrent components. The design problem is to develop a control system that safely and reliably achieves its given tasks. We focus on two aspects of this problem: eliminating unwanted interactions amongs behaviors and dealing with uncertainty arising from incomplete models of the effects of actuators and sensors. Our basic approach to both problems involves combining causal (symbolic) and decision-theoretic reasoning techniques: the causal reasoning help frame the problem, focusing on relevant features, and the decision-theoretic techniques help in making optimal choices.