Follow-up #46693 - Also exclude `Type{Tuple{Union{...}, ...}}` (#46723)
* Follow-up #46693 - Also exclude `Type{Tuple{Union{...}, ...}}`
The check in #46693 was attempting to guarantee that the runtime
value was a `DataType`, but was missing at least the case where
a tuple of unions could have been re-distributed. Fix that up
and refactor while we're at it.
* Apply suggestions from code review
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Co-authored-by: Jameson Nash <vtjnash@gmail.com>