Agreed, the schedule task trick also works. We actually use this trickery to "fully patch" a box. When we bootstrap a new node, The first thing we do is created a schedule task, and then append our patching recipe recipe, so that the schedule task will then fire off the next run including the patching recipe. We do this because we have some unknown number of reboots required to fully patch a new node. We use the schedule task to do the install/reboot/check if more are needed loop. Once no more patches are needed, the patching recipe is removed from the run_list