In emerging service-oriented systems, such as computational clouds or grids, software agents are able to automatically procure distributed services to complete computational tasks. However, service execution times are often highly uncertain and service providers may have incentives to lie strategically about this uncertainty to win more customers. In this paper, we argue that techniques from the field of artificial intelligence are instrumental to addressing these challenges. To this end, we first propose a new decision-theoretic algorithm that allows a single service consumer agent to procure services for a computational task with a strict deadline. Crucially, this algorithm uses redundancy in a principled manner to mitigate uncertain execution times and maximise the consumer[modifier letter apostrophe]s expected utility. We present both an optimal variant that uses a novel branch-and-bound formulation, and a fast heuristic that achieves near-optimal performance. Using simulations, we demonstrate that our algorithms outperform approaches that do not employ redundancy by up to 130% in some settings. Next, as the algorithms require private information about the providers[modifier letter apostrophe] capabilities, we show how techniques from mechanism design can be used to incentivise truthfulness. As no existing work in this area deals with uncertain execution times and redundant invocations, we extend the state of the art by proposing a number of payment schemes for these settings. In a detailed analysis, we prove that our mechanisms fulfil a range of desirable economic properties, including incentive compatibility, and we discuss suboptimal variants that scale to realistic settings with hundreds of providers. We show experimentally that our mechanisms extract a high surplus and that even our suboptimal variants typically achieve a high efficiency (95% or more in a wide range of settings).