Return the exact length of a date interval in unit, as a real (possibly fractional) number.
Distinct from intervalCountDate, which counts calendar unit boundaries crossed rather than measuring exact duration — see intervalCountDate’s JSDoc for the canonical 11:59pm→12:01am example of the two diverging. intervalLengthDate answers “how long is this interval”, intervalCountDate answers “how many boundaries does it touch”.
Uses Temporal.Duration.prototype.total, which resolves calendar units (month, year) against the interval’s own start so a partial month is expressed as a true fraction rather than truncated.
Returns 0 for a zero-length interval (start === end).
Returns null on invalid input (unparseable start/end, start > end, unsupported unit, or a unit that has no effect on PlainDate, e.g. "hours").
Accepts GMT calendar-annotated PlainDate strings — E5 (issue #78). When start and end carry the same calendar tag, the length is measured in that calendar; otherwise (or if either is bare ISO) it falls back to Gregorian — same shared-calendar rule as intervalCountDate (E5 decision of record D5).