Custom upload plugin to unzip files
What you could do is to create a new asset source and a new asset field for the backupimage and a plain text field for the HTML (you can later convert this to an Incognito field). Add those new fields to the ZIP files' field layout.

After unzipping the bundle to a temp directory with you plugin, you can now check if the files meet your requirements. If everything's fine, create an asset file model from the backupimage using the insertFileByLocalPath method and relate that asset to the ZIP asset by storing its ID to the ZIP's backupimage asset field. Now read the HTML file and store it into the ZIP's html plain text field. 

You might also want to have a look at the source code of my Asset Metadata plugin, as I'm doing some quite similar things with the field type it provides.