@gsparks2: thank you. If I understand you correctly, the download time went from minutes per book to a second or less. Excellent.
Your comments triggered some questions, so I (finally) did enough research to better understand path lengths. CC gets it wrong.
As far as I can tell, no file system used in Android has a draconian limit on path length. However, other operating systems such as Windows that might read an SD card do. For example, Windows has a limit of 255 characters. CC gets this right.
On the other hand, several file systems used in Android such as ext3 have a limit on a single component of a file path. The ext3 limit is 255 bytes, which if using unicode is 127 characters. The FAT32 limit is 255 characters.
CC doesn't get the second limit right. I will fix this.