[V110-specific] Modify mark-for-churn-out timing
[V110-specific]
2023-05-03 update: Linking this with #1380 (closed) 'Churn cleanup', particularly noting
"We also should mark the lowest version only on the initial churn, not on retries, and possibly allow some grace period between how long the version has been the majority. Currently the code will keep marking additional nodes for low version.".
Based on this discussion,
this Merge Request replaces (by including) January 22nd's !2741 (closed)
'Mark low version Active nodes only on initial keygen try'.
The intended new behaviour: \
- Only mark for bad performance if keygens are failing or if {validators are at DesiredValidatorSet and a Ready node is waiting for a position}.
- Only mark for age, low bond, low version in a churn's first keygen try.
- Only mark for age or low bond if validators are at DesiredValidatorSet and (when considering each) a Ready node is waiting for a position.
(Note that validator number can drop if Ready node members cannot complete keygens,
thus the reasoning of not making extra room for Ready nodes unless already at DesiredValidatorSet.)
Edited by Multipartite