ResourceLoadScheduler constructs SubresourceLoader object when it learns about a new resource load. SubresourceLoader::create() calls init() which invokes the delegates.
This means that delegates may be invoked well before the load actually starts, making clients show wrong information. They also get invoked even when the ResourceLoadScheduler is suspended.
I'm wondering if this is the reason for bug 53828.
See also http://trac.webkit.org/changeset/74453, which made the case for calling willSendRequest() in init().
It looks like either clients show wrong information because of willSendRequest() being called before scheduling, or we have to schedule based on dubious information because willSendRequest() hasn't been given a chance to modify the ResourceRequest.