Instead of generating content dynamically and worrying about all the associated issues with caching why not implement something similar to:
It uses a file watcher to look for changes to js or css files. Once a change is detected it regenerates the file. This means that content can be served via kernel mode caching for IIS, as its a static file. Kernel mode caching is the fastest way to serve
files. Etag and expires headers will be handled by IIS and any number of http modules can be applied without too much thought (authorization, compression etc.)
If you are not happy with the way that IIS serves static content, you could use a dedicated http handler such as:
http://code.google.com/p/talifun-web/wiki/StaticFileHandler this way you can be sure that it handles all the required http headers.
Some of the http headers to support are:
Also don't forget to support http methods HEAD, GET
Keep up the good work, the project looks very interesting!