Uso correto do DriveApp.continueFileIterator (continuationToken)

Escrevi um script para percorrer um grande número de arquivos em uma pasta do Google Drive. Devido ao processamento que estou fazendo nesses arquivos, ele excede o tempo máximo de execução. Naturalmente, escrevi no script para usar o DriveApp.continueFileIterator (continuationToken): o token é armazenado nas Propriedades do projeto e, quando o script é executado, verifica se há um token, se existe, ele cria o FileIterator a partir do token. começa novamente.

O que descobri é que, embora o script reinicie com o token de continuação, ele ainda inicia no início da iteração, tentando processar os mesmos arquivos novamente, o que desperdiça tempo para as execuções subseqüentes. Perdi alguma coisa vital, como em um comando ou método, para começar de onde parou? Devo atualizar o token de continuação em vários estágios durante o loop while (contents.hasNext ())?

Aqui está o código de exemplo reduzido para dar uma idéia:

function listFilesInFolder() {
  var id= '0fOlDeRiDg';
  var scriptProperties = PropertiesService.getScriptProperties();
  var continuationToken = scriptProperties.getProperty('IMPORT_ALL_FILES_CONTINUATION_TOKEN');
  var lastExecution = scriptProperties.getProperty('LAST_EXECUTION');
  if (continuationToken == null) {
    // first time execution, get all files from drive folder
    var folder = DriveApp.getFolderById(id);
    var contents = folder.getFiles();
    // get the token and store it in a project property
    var continuationToken = contents.getContinuationToken();
    scriptProperties.setProperty('IMPORT_ALL_FILES_CONTINUATION_TOKEN', continuationToken);
  } else {
    // we continue to import from where we left
    var contents = DriveApp.continueFileIterator(continuationToken);
  }
  var file;
  var fileID;
  var name;
  var dateCreated;

  while(contents.hasNext()) {
    file = contents.next();
    fileID = file.getId();
    name = file.getName();
    dateCreated = file.getDateCreated();
    if(dateCreated > lastExecution) {
      processFiles(fileID);
    }
  }
  // Finished processing files so delete continuation token
  scriptProperties.deleteProperty('IMPORT_ALL_FILES_CONTINUATION_TOKEN');
  var currentExecution = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd HH:mm:ss");
  scriptProperties.setProperty('LAST_EXECUTION',currentExecution);
};

questionAnswers(2)

yourAnswerToTheQuestion