I'm not sure I understand what problem that patch is supposed to fix.
Which means that everything I write could be completely wrong...
But to me it looks like the described issue is exactly what you should
expect if that change ever triggers. I believe we must resubmit the
urb from service_outstanding_interrupt(). That's why it was added. See
the explanation Robert wrote when introducing it:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/usb/class/cdc-wdm.c?id=c1da59dad0ebd3f9bd238f3fff82b1f7ffda7829
As for the XMM behaviour: it's been a long time since I tried any of
those, but AFAIR one the major differences compared to Qualcomm was the
strict queue handling in the firmware. This caused a number of problems
where the cdc-wdm driver wanted to skip a message for some reason. So
I'm not surprised that a bug like this is triggered by one of those
modems. That's probably the only thing they are good for :-)