Why does a Columnstore index build often wait on SLEEP_TASK?
SLEEP_TASK Idle Generic Sleep.
SLEEP_TASK is a general wait, used for all sorts of things where a more specific wait type doesn't exist, but it does crop up with Hashing operations (join/aggregate) that spill to tempdb, and occasionally at an exchange (Parallelism operator) where a consumer is waiting on something that isn't a normal CXPACKET or EXECSYNC wait. I would check for Hash spills first
SLEEP_TASK Wait Type in SQL Server - What does it indicate?