so you say IE9 will fail completely if the timeout hits? I agree, in this case this is a major issue. However, the whole thing isn't really jquery's fault, but specific to the browser implementations. To really fix the bug, one must nag the IE & FF developers to fix this in their code.
I don't think there is a *good* way to work around this in jquery for those browsers. The only workaround I came up with, is to prevent jquery from deleting the jsonp callback function when the timeout is encountered. Instead, upon timeout hit, the callback function is replaced by an empty dummy function which does nothing. So if - at a later time- the ajax request completes (even if the timeout was hit already) the browser actually finds the function.
This is UGLY AS HELL, as references to the callback functions are stored PERMANENTLY in the window object, thus cluttering the heap more and more everytime you do a jsonp request that exceeds its timeout.
If you can live with that and only do a limited amount of requests on a page, I've uploaded a patch that implements this workaround, grab it here: http://www.stud.uni-karlsruhe.de/~urblr/jquery-ugly/workaround-bug8744.diff
To test jquery with applied patch see: http://jsfiddle.net/D5YUZ/
At least it fixes the issues in FF for me (can't test in IE since I don't have a windows box around).
Once again, this is not a good solution and the patch is not meant to be put into upstream jquery, so you've been warned!