I was able to resolve the cached blank page issue by adding a rewrite rule (I'm on IIS, otherwise this would be done in htaccess if you're running on apache, see @skrause's reply above for htaccess code).
Still curious to know why it's creating a blank page when trailing slash is missing, if anyone figures that out.
For anyone looking, this is what my IIS rewrite rule looks like in web.config (make sure this comes before any wordpress rewrite rules):
<rule name="Add trailing slash" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.html$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.aspx$" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}/" />
</rule>
My other issue related to incorrectly formatted cached pages is related to another issue with the Ubermenu plugin and W3 Total Cache.