Serialize Agent tasks

I would like to do this in a subsequent PR. I started going down this path just now and realized there are a lot of decisions to be made unrelated to the work being done here.