Blog post: The history of Unix's ioctl and signal about window sizes https://utcc.utoronto.ca/~cks/space/blog/unix/WindowSizeIoctlAndSignal (in which a post from @ireneista kind of nerd-sniped me and I kept digging)
tl;dr: SIGWINCH came from very early SunOS, and appears to have originally been intended for graphical programs (the early SunOS window system was partly kernel based). The TIOCGWINSZ ioctl is first officially documented in 4.3 BSD but may have been present in early SunOS too (it is in 3.5).