Hi James,
Thank you for raising your concern. Based on the updated code snippet that you provided, the scripts will get all the accounts without 'Disapproved Ads Checked' label then it will label it as 'Disapproved Ads Checked'. If the script will be executed multiple times, it will cover all client accounts without this label. It seems that on your updated script, there are no issues already in regards to executing all client accounts.
Regarding the issue of not sending email, there is a line of code the causes an error to your script. This error occurs after the creation of the spreadsheet report so you will notice that the spreadsheet report is complete and it stops on that part. You may try to delete/comment out the below line of code and try to run your script and verify if the solution solves the issue.
accountsList[indexMap[res.accountId]].lastChecked = dateTimeStr;
If issue still persist, you may give your CID and the script name via Reply privately to author so I can further investigate your issue.
Regards,
Hiroyuki
AdWords Scripts Team