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 } } }