Lower bound on the number of comparisons needed for finding the two largest elements
With impossibility proofs, you don’t control the algorithm; you control
the input. For this particular impossibility proof, the input is the
outcome of the comparisons that the algorithm performs. Here’s one
possible adversary strategy.

This adversary never claims that elements in distinct positions are
equal. At each point in the algorithm’s execution, there are two classes
of elements: candidates, which are the elements that have not compared
less than another element; and non-candidates, which are the remaining
elements. Candidates always compare greater than non-candidates.
Non-candidates compare in an arbitrary consistent way. Comparisons
between candidates can be resolved arbitrarily (prove this); the
adversary declares the candidate involved in more previous comparisons
of this sort (“knockout” comparisons) to be greater.

At the end of the execution, there can be only one candidate; otherwise,
the algorithm can’t know which of the candidates is the maximum (prove
this). The only way to reduce the number of candidates is a knockout comparison, which reduces the number of candidates by one. This implies that there are
n - 1 knockout comparisons, forming a tournament tree of some
shape. We observe that, for each node of the tree, when an element
secures its place there, it has participated in a number of knockout
comparisons equal to the height of that node. The root has height at
least lg n, so it takes lg n - 1 comparisons to determine which of the
lg n elements compared less than the maximum only (otherwise, the second
maximum isn’t known). None of these comparisons are knockouts, so the total is at least n + lg n - 2.