We found and issue with 3.5.3 driver and unifiedTopology = true:
Server description with lastUpdateTime / lastWriteDate fields updated is ignored in topology.
By Spec Server_DEscription must be update with new one on every isMaster response.
But Topology ignores Server_Description if previous Server_Description considered equal to new one.
Server_Description::equals()does not account for lastWriteDate lastUpdateTime and some other fields.
This can cause bugs when selecting server by staleness
We found issue by attaching to working server and adding breakpoints to Topology::serverUpdateHandler() and Topology_Description::update().
Topology_Description::update() was not called for 30 minuted. and Topology::serverUpdateHandler() was constantly called with new Server_Description but it never updated description cause previous one was always considered equal to new one.
This behavior was introduced in 3.3.4 driver