Most the delays appear to be behind the scenes. Some are from additional things we have to do that used to be automatic in 6.9 (for instance hardware inventory was run in the WinPE agent whereas now we have to manually run it in production). There is a much longer delay in all phases of tasks except actual run-time on the client (delivery to the client, delivery of result to the server, processing conditions (if any) on the result). It sounds like the delivery phases just take longer because it's NS. :(
The most problematic for us is the delivery delay occurs whenever a condition is used.. basically it seems to take up the delivery time of a whole other task even though it shouldn't, as far as I can tell, involve any communication with the client agent. If we have to parse through a list of 15 return code conditions to determine which job to kick off next, the job takes a large chunk of time, unlike in 6.9 where no matter how many return codes you handled, it was a finite time (near instantaneous) to trigger the handler and fire off the next job.
Perhaps it's the current design of conditions.. right now there's only if-else. A lot of times (arguably any time you have more than two expected results for the same return code) a select-case handled in one transaction would be much more efficient than nested ifs handled in separate transactions.
Just so you have an idea of the timing I'm talking about, here's a run-through of one of our condition-heavy jobs:
(five seconds elapse between job start and T1 being fired)
T1: map a drive (takes 10 seconds, then 10 seconds elapse before next task fires)
T2: run a script to determine machine location, type and manufacturer, exits with appropriate return code (takes 10 seconds, then 10 seconds elapse before next task fires)
C1: If T2 returns 100, do nothing (falls out to a task T4 at the bottom of the job) (takes 0 seconds, +10 seconds elapse before next condition fires)
else
T3: Gather hardware inventory (takes 1:15+10)
C2: If T2 returns 111, run System Configuration task A, (for instance St Louis Dell Desktop, let's call it SC:A) (takes 0+10)
else C3: If T2 returns 121, run SC:B (0+10)
else C4: If T2 returns 113, run SC:C (0+10)
else C5: If T2 returns 122, run SC:D (0+10)
else C6: If T2 returns 123, run SC:E (0+10)
else C7: If T2 returns 130, run SC: F (0+10)
condition fires: SC:F is run (takes 10 seconds, then machine is rebooted, taking 2:30)
<end of conditions>
T4: Unmap drive (takes 10 seconds, then 10 )
The entire job takes 5:23, which adds up with just a few extra seconds to rounding errors. So there you have it, two minutes of the job was time wasted in 5-10 second intervals between tasks and conditions. And this is only one office. When I finish adding in conditions for our other offices we'll triple the amount of conditions and the job will potentially take an additional 3-4 minutes on machines in the last office.