add check for invalid state in `_growend!` slow-path (#53513)
This only triggers in cases where the user has done something pretty bad
(e.g. modified the size incorrectly, or calling `push!` from multiple
threads on the same vector without a lock). I'm very unsure if
`ConcurrencyViolationError` is the right error to throw here, but I
think most of the time, that is going to be the cause. This check is in
the slow path because adding extra checks here is basically free (since
it will run rarely, and will be batched with O(n) work to copy
everything over).