After thinking about this more, perhaps being able to pass in dynamic arguments to modify the query isn't the best thing for tilestache. It effectively breaks the cache.
However I could argue that as long as the number variables were small that the cache could still be used.
For now Im testing a few different methods.
1. A couple thousand layers
2. Return all of the data at once in a handful of layers and use JS to display/hide the data as needed.