It doesn't seem that all your content is straight content, but something that could be put into properly structured custom database tables, rather than being forced into (generally inefficient for this sort of thing) Resources and TVs. You could then either create a
Custom Manager Page to manage the data, or a
custom resource class to extend the Resource and provide your own view (similar to Articles).
You could put these all in Resources; but that doesn't seem very efficient, as you're describing basically a few views with a bunch of custom data that is interpreted based on the view. I would recommend looking into creating a custom DB model for the data and rendering that way.
Doing via straight resources would put 800k+ ID->alias indexes into the context cache array; from what I know of PHP, it slows down a bit with arrays that big. Resource data is cached per-resource, but still - it has to cache the ID to alias map in one file for easy lookup. And with 800k+ Resources, it would get heavy. Using a single view Resource for similar data would drastically reduce the number of Resources you're using.
Plus, doing the filtering and navigation you're proposing, I could see that getting quite nasty having to circumnavigate that around TVs and such. I'd recommend strongly the custom DB tables route.
Also, you can use memcached and the mysql slave/master replication to help offset the load. Jason can chime in a bit later on this.