Site gives 500 error or malformed page in place of WSOD and useful error reporting I don't think I have encountered this before. Generally if there's a php error on page, I'm met with a WSOD. With error reporting on, the error, file, line number, etc are displayed on the page. 

With this site, the site either returns a 500 error (if the error is in hook_form_alter, for example), or the page will load partially up to the point of the error and display sans stylesheet/other resources (if the error is in a template file).

Any ideas why this might be and how to change it over to expected behavior?
Fixing such errors is a panic, as in comments you have tried php debugging.

Below tries may help:

1- Try to install new drupal site locally to ensure that your machine and required programs for drupal "If you don't have any working drupal site" works fine, If you faced problems in the installation fix them till you have successful installation.

2- Try to flush cache and running cron from the admin interface if it works or using drush by drush you can see latest log messages using commands "wd-list, ws".

3- Implement hook_init in any custom module and print any message after that call drupal exit to see tha messages in the browser.

4-disable "without uninstall in order not to loose configurations" last enabled custom or contributed modules, If you have drush installed try 


  drush dis Module_name -y


Or from phpmyadmin 


  Delete from system where name='Module_name';


I used these steps before to solve similar situation and I remember it was from one the contrib modules.

If you still have the problem these guides may help.

Fixing white screens step by step 

Blank pages or "white screen of death" (WSOD)