Maybe you can access the files contained in the archive on-the-fly, without decompressing the whole archive upfront. I know it is pretty straightforward to do this with ZIP files. You could implement a view that works like this:
my-zip-archive/@@archive-view/contained-folder/contained_file.html. With this view and if the links in HTML file are all relative, then you can use the view to display it in an iframe.
I think to meet your requirements you’ll need to implement the solution yourself. I have had to implement something very similar and did not found an add-on for this.
I end up using atreal.massloader which allows to upload a ZIP file and it gets unpacked into individual File and Image content items inside a folder. I had also to implement a view to Folder items which displays a page with an iframe, pointing to the
index.html inside the folder.