We recently made a few changes to the design. We now always hedge, immediately, and set a maxTimeMS on the hedged read (configurable via maxTimeMSForHedgedReads runtime server parameter).
Therefore, the code for staggering support should be removed. That includes the code for the "delay" flag in $readPreference and the code for computing the hedging delay. So the user-facing syntax is now:
{
...,
$readPreference: {
mode: "nearest",
hedge:
{ enabled: true, // default value is true }
}
}