I believe the dashed lines point to the code flow.
(1) get_next_item() leads to Sequencer arbitration.
(2) Once a sequence is selected, start_item in the respective sequence would unblock and the code following start_item executes till it reaches finish_item.
(3) Call to finish_item(), unblocks get_next_item() in the driver and then the code in the driver executes ( indicated by dotted lines ) till it reaches item_done(). finish_item() unblocks once item_done() is called.
Also if I recollect correctly code flow post item_done() continues till it blocks in driver ( eg: call to next get_next_item() ). This is when finish_item() unblocks to be precise