I was able to solve this problem on my own after a bit of experimentation.
First, I installed Exec-PHP.
Second, I created a page called Age Gate. It presents the user with a mature content warning, and a yes/no choice. Yes takes you to a page called Cookie Setter. No takes you to the top of the site.
Cookie setter sets a cookie for my domain called “mature”, and redirects the the category that’s mature.
Each page of the mature content category has a bit of PHP on the top of it. It checks for the presence of the mature cookie, and if the cookie isn’t set the page redirects to Age Gate.
A more elegant, generalized solution would pass the destination page through the age gate and cookie setter, then redirect to that specific page rather than to the category. That didn’t matter for my site, but would be necessary for a more generalized blog. It seems possible that blog entries could be wrapped in a bit of PHP that checks for the cookie, and only displays it if the cookie is set.
I’m guessing I just described the core functionality of a new plugin, but I don’t know enough about wp-guts to do it myself. In any case, putting in a simple age gate is pretty easy.