Has Qualcomm ever engaged in significant semi-custom work?
Yes, the early generations of Snapdragon SoCs were built using a custom ARMv7 core called Scorpion, which was later succeeded by another v7 core called Krait. The first ARMv8 SoC (the infamously disastrous Snapdragon 810) used stock ARM cores, but the next generation (820) switched to an in-house v8 design called Kryo. Around that time though, the company did massive layoffs, including in silicon engineering, leading to all the subsequent designs using tweaked ARM cores (despite also being called Kryo)