ActionResult refactor to store structured results

IIRC we wanted to be able to store the results even on failure -- is this maybe just a matter of `Action.Finish(status, results)`?