Seeing as when you store the epub in the FF profile, you seem to unzip it and store it uncompressed, could you analyse the content at the time of adding it to the epub library and then store the result somehow (as an index maybe)?
It may mean the initial load into EpubReader is a bit slower but if you have already analysed it, the next time you load the book, you could just refer to the save analysis data to provide the basis of the book progress.
I'm not a programmer (I only understand a few languages at a basic level and haven't done any programming for about 10 years), so I could be wrong about this.
Get 5GB of online storage for free from SugarSync. Click here
for an additional 500MB to give you 5.5GB for free.
Always have your stuff when you need it with @Dropbox. 2GB account is free! Click here
Currently working on updating some of my Lovecraft work after receiving some corrections