The following commands don't add the -randomdelay value to the trigger.
$triggers += New-ScheduledTaskTrigger -AtLogOn -RandomDelay $timespan
$triggers += New-ScheduledTaskTrigger -AtStartup -RandomDelay $timespan
Should be:
$triggers += New-JobTrigger -AtLogOn -RandomDelay $timespan
$triggers += New-JobTrigger -AtStartup -RandomDelay $timespan