Thanks for doing the experiments!
The order is what I would expect to see. Using job sequencing forces job 6 (finishing the sync_metadata) to run ahead of job 4 (kindle collections), so that the device and the gui views are in a good state before collections are made. As it was before, kindle collections would run before the sync_metadata see stale data on the device and on the gui, and the sync_metadata job it schedules would fight with one that hadn't run yet.
You need to use FunctionDispatcher if either you want to finish some work before the next job starts or if you want to schedule a following job step. Neither of these seem to be true for you, which is why it doesn't matter.
|