Jun 14 2017
Testing the behaviour on enwiki and meta (actually a few days ago, when I had cause to investigate why my user JS was sometimes slow to fire), the first call to jQuery.ready.promise() frequently occurs after DOMContentLoaded, adding the undesirable delay. I see (jQuery.isReady === false) long after DOMContentLoaded has fired.
This is probably a known bug in jQuery 1.11 (the version currently in use by WMF), fixed in jQuery 1.12 and later. If the first use of jQuery.ready.promise() comes after the browser has fired the DOMContentLoaded event (or readyState === 'interactive'), jQuery will incorrectly wait until the load event (or readyState === 'complete').