Support for running expensive commands in the background.

This is currently used for the extracts, which are expensive enough
that there's a noticable pause while they occur.