fix(executor): resolve union types wrapped in NonNull
Previously, when checking if a field type was a union to trigger type
resolution, the executor only matched bare UnionType. This caused
NonNull(UnionType) fields (like connection edge nodes) to skip union
resolution, resulting in incorrect __typename values and empty inline
fragment results.
The fix unwraps NonNull before checking is_union, matching how list
items are already handled.