I've traced this back a bit, so I'll share my current understanding:
The temporary files are created in w3-total-cache/inc/functions/file.php, in a function called w3_file_put_contents_atomic. Specifically in my instance, the call to "fopen($temp, 'wb')" appears to be failing.
This is being called from w3-total-cache/lib/W3/ConfigData.php, in the function write($filename).
This function is being called from w3-total-cache/lib/W3/ConfigWriter.php in the function create_compiled_config. Here the exception from w3_file_put_contents_atomic is caught, but ignored. If I check this exception, I can see that the fopen call is failing.
Specifically, my issue appears to be two pronged:
One is that since safe mode is on, the calling script must have specific permissions to write to the tmp directory. I can adjust the permissions somewhat, but that brings me to the second issue...
This config file appears to be rewritten on every admin page load. (Thus, when it was failing, it was causing new files to be written very, very often). I don't know if there's anything specific in this config file that requires a refresh every time an admin page loads, but that behavior might be worth investigating.