I agree that termination isn't part of soundness. I was trying to explain how null pointer exceptions are compatible with soundness in Java.
As far as I understand it, Java covariant arrays are sound because the language is defined to throw before the unsound assignment happens. The link I had above claims as much. Maybe I have the definition wrong too?