1] Yup, should be faster if you do not write everything to disk. But, you would have to manage the memory better in that case, I think. Memory is more limited than hard drive space.
1a] It could also speed things up a little if you maintain the LastWriteTime in memory instead of creating a FileInfo object for every cached tile at every redraw.
1b] It is possible (I am not too sure with C#/Windows Threads) that less threads would be better; e.g., only maintain around 5 download/render threads at a time. That would leave Windows less busy with thread handling, and also less busy with handling many
downloads at once.
2] Only one way to find out. :)
Thanks for the good work.