The issue on this page was with the code you added to create a zip file from the files. You put the code inside of the FOR loop that displays all of the files so that the .zip file was being re-created after each file listed on the page. That means you were re-creating the zip file 20+ times before displaying the page.
I thought at first it was just the creating of the zip file in general was taking the time, but after a little debugging I realized it only took a second or two, but it was running 20 times before the page loads.
I moved it on your two pages that list files so that the .zip file is only created once. The page could be sped up even further so that the zip file is only created once the user clicks the link to download it, but the time doesn't seem bad now.