I believe this recursion can also be replaced with scheduling and scheduleExec for the ps command (which gives logging and timeout). Definitely not asking to do this in this CL, but we're generally moving everything to scheduling, and running all child commands via scheduleExec would make sense too. Adapters from straight callbacks to scheduling are mostly an artifact of my pre-scheduling code (and necessary for the NodeJS built in API).