Following up in case someone comes across this in a search.
The issue seems to have been that the WordPress database had been damaged, possibly during a backup. AUTO_INCREMENT for many (possibly all) tables had been set to NULL, and would not accept being manually reset.
mod_fcgid was throwing errors because the database was broken.
The failure was subtle, because both the front and back ends of the the site displayed as expected. It was only during write operations that undesired behavior appeared.
The solution I used was to roll the database back to a known good state.