Since 9f66ac7cf1, only empty headers, headers that connect to the block index, or a valid low-work sync continuation count as a response to an outstanding getheaders. Part 5 of p2p_sendheaders always sends an empty headers message before each unconnecting header, so nothing checked that an unconnecting header on its own leaves m_last_getheaders_timestamp alone.
It adds a test case that sends an unconnecting header again right after the previous getheaders and check that no new getheaders goes out. Then advance mocktime past HEADERS_RESPONSE_TIME and check that a getheaders is sent again.
It kills the mutant https://mutanthub.space/mutants/3744.