Fix a precision issue in `abstract_iteration` (#41839)
If the first loop exits in the first iteration, the `statetype` is still
`Bottom`. In that case, the new `stateordonet` needs to be determined
with the two-arg version of `iterate` again.
Explicitly test that inference produces a sound (and reasonably precise)
result when splatting an iterator (in this case a long range) that
allows constant-propagation up to the `MAX_TUPLE_SPLAT` limit.
Fixes #41022
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
(cherry picked from commit 92337b560a3a5b71181ed420bea1890d196517a6)