How do nodes come to consensus on whether a timestamp is valid?
They don't need to.

If a block's timestamp is in the future, it won't be accepted - but it also won't be marked as invalid. Once enough time passes, the node will accept the block if it is offered or received again.

Effectively, the maximum limit on the timestamp is not a consensus rule, but just a temporary acceptance rule.