DateTimeDiff precision issues in Architect expressions for date comparisons

Why does this setting in my Architect flow cause inconsistent results when comparing timestamps using DateTimeDiff? I am building a high-throughput routing logic that needs to determine if an interaction occurred within the last 24 hours. I expected the expression to return a precise integer difference in days, but the behavior seems erratic when crossing midnight boundaries.

Here is the expression I am using in the decision node:

{{DateTimeDiff(now, flow.input.lastContactTimestamp, "d")}}

I am comparing the result against 0 to check if it is the same day. However, when lastContactTimestamp is 2023-10-25T23:00:00Z and now is 2023-10-26T01:00:00Z, the expression returns 1. I anticipated 0 because it is technically the same calendar day in some contexts, or at least a fractional value if seconds were used. The documentation suggests DateTimeDiff truncates to the specified unit, but it does not clarify if it calculates the difference based on absolute time elapsed or calendar day boundaries.

I also tried using GetDayOfWeek to compare days, but that requires normalizing both dates to the same week context, which adds unnecessary complexity. My Go service consumes these decisions via the API, and incorrect day calculations lead to misrouted contacts. Is there a more reliable way to compare date components in Architect expressions without relying on DateTimeDiff? Should I be calculating the difference in seconds and dividing by 86400 instead? I need a deterministic approach for production traffic.