What happens if nodes have different P2P versions during discovery?
If the nodes are running different versions then communication cannot continue.

That is incorrect. If two nodes interact which have different versions, they just communicate using the lower of the two versions.