I came up with a user script fix for this problem. Basically, what it does is turn off display math entirely in the questions list, rendering it inline instead.
For the curious, here's the code:
MathJax.Hub.Register.StartupHook( "End Config", function () {
var conf = MathJax.Hub.config.tex2jax;
conf.inlineMath = conf.inlineMath.concat( conf.displayMath );
conf.displayMath = [];
} );
It works simply by tweaking the MathJax config so that all the delimiters for display math are listed as delimiters for inline math instead.
I've added this code to the development branch of SOUP; if there are no unexpected side effects, it should be part of the next stable SOUP version, v1.30. (Impatient and/or daring folks can, of course, just install the devel version to get all the newest bugs and features.) Based on my quick testing, it seems to work as intended:
Before:

After:

Note that this code needs to be run before or during the MathJax config phase; SOUP accomplishes this by injecting this code into the page as a MathJax config script before the page (and MathJax) loads. There have been some reports that this is not always 100% reliable on Chrome, apparently because even user scripts with @run-at document-start
sometimes get loaded too late there. If you know a better way, please tell me.
Also, obviously, running this code on all pages would be counterproductive, since it would disable display math entirely on the whole site. Instead, SOUP currently runs it only on the following pages:
Those are all the places I can think of that should show questions in snippet view; if you know any other places that could use this fix, please let me know.
Update: The next (alas, long overdue) SOUP release, v1.46, has a completely rewritten fix for this issue. Instead of messing with math delimiter settings, the new fix sets up a MathJax hook that runs between the math parsing and rendering stages, and simply strips the mode=display
attribute from any math elements that should be forced inline:
var displayMathScripts = 'script[type^="math/"][type$="mode=display"]';
var excludedParents = '.comment, .summary, #sidebar, #question-header';
MathJax.Hub.Register.MessageHook( "Begin Process", function (message) {
var elements = message[1];
$(elements).find(displayMathScripts).each( function () {
if ( $(this).closest(excludedParents).length == 0 ) return;
this.type = this.type.replace(/;\s*mode=display$/, "");
} );
} );
One advantage of this method is that it applies to all types of display math syntax, including e.g. \begin{equation}
... \end{equation}
. (I bet most of you didn't even know that you can write \begin
/ \end
math blocks without $$
or \[
/ \]
like that!)
The main advantage, however, is that the new fix can selectively disable display math only in some parts of a page, while leaving it enabled elsewhere on the same page. Currently, I've configured it to convert display math to inline math in comments, post summaries (basically duplicating the old functionality), question titles and anywhere in the sidebar. I think that should pretty much cover every place where you might not want display math to appear, but suggestions for improvement are welcome.
(Alternatively, it might be better to make disabling display math the default, and only enable it in post text and previews. If I went that route, however, I'd need to make sure that I don't miss any odd places where display math should work, like edit histories, review or even chat.)