It's on a timeout because the code path here expects the onReadyCallback to be fired sometime after it returns newPlugins.

The timeout is 4ms because that's the lower bound for scheduling a setTimeout call across browsers.