It just assesses a few criteria at the 'header' level (ie not looping through lines) and then within that script you set a scheduled script to run immediately with parameters from the assessment. The scheduled script then does the heavy lifting iterating through line items and updating columns that we need, but does not hold up the checkout process.