I've spent a lot more time debugging this, and unfortunately, have not been able to resolve it. However, I have more information:
1) BOTH the ASP.NET site and the Sharepoint deployed version are correctly writing the .ukn (thumbnail) and .png (viewer) files to their ImageCache directories.
2) The thumbnail viewer correctly determines the number of pages in the
TIFF file, and shows them correctly (but blank, no image).
3) When viewing source from the browser, BOTH show the correct relative path to their files. In ASP.NET, this is straightforward. In Sharepoint, because the virtual directory is very divergent from the actual directory, that path looks like this:
4) If I try to access the png image directly in the browser, by pasting the above path and remove 4 levels of directories after the URI, the image DISPLAYS CORRECTLY in the browser (i.e. there don't seem to be any security access issues.)
5) If this helps, I have an ASP.NET ImageButton control that has a relative path assigned directly as a property (i.e. "Gfx/myImage.GIF"); this gets correctly interpreted in Sharepoint as ../../../../UserControls/Gfx/myImage.GIF and displays the image. This leads me to think that there is something about the way that the web.config key is being interpreted, which causes it to WRITE to the directory correctly, yet somehow not READ from it correctly:
<add key="AtalasoftWebControls_Cache" value="../../../../UserControls/ImageCache/" />
Any help with this issue would be greatly appreciated.