Soft, mushy cauliflower is the result of overcooking. Cauliflower, to begin with, will never get as fully crisp or crunchy as other vegetables because cauliflower naturally contains a lot of water. To keep a whole head from overcooking, err on the side of undercooking by reducing the roasting time to 25-30 minutes and checking the doneness with a fork from there.