Should this just be called `timeout` instead? While the current implementation is shell_out, I think the feature should be abstracted away.