On Mozilla MDM, about XmlHTTPRequest, you can read:
Note: You may not use a timeout for synchronous requests with an owning window.

So a better work around could probably be to change the line (1009 in v4.0)
Code:
if(callback && callback.timeout){
to
Code:
if(callback && callback.timeout && options.async){