1. I’m a little confused: you’re printing the sentence both as part of your newText element and as part of your HTML document. Why would you not expect it to appear twice, then?
2. How do you upload the recordings? Do you insert asynchronous UploadedRecordings trials regularly? You can make them synchronous if you want to make sure that the experiment does not proceed to the next trial until the recordings have been uploaded (although your participants might have to wait a while after each trial)
I’m not sure why you wouldn’t get a line for the last zip file, but it could be that the specific way your experiment is coded makes it send results to the CSV file before it can run the last UploadedRecordings trial
3. Not sure what is happening with the resource preloading, it will in part depend on your specific setup. As the number of files your experiment needs to retrieve increases, it becomes a good idea to group them into ZIP files. Some servers do not like the same IP sending too many requests in a short period of time, which could be one explanation for your experience
Regarding group/list, the default behavior is to increase the internal counter only after (and whenever) receiving a full submission. Use SetCounter if you want to increase the counter earlier in your experiment