It was an unhelpful answer, and not one that I think would necessarily solve the problem. Although you probably should take a look at the alternative to delay as suggested, as it offers a few advantages in the long run.
I think that simply removing the outer for loop from FadeOutLeds and setting the analogWrite value to 0 should work. You might also want to try tuning the 80ms delay after each turn-off to get it as low as possible. I can make 50ms for transitions on mine before things go bork.
for(int j = 0;j<num;j++){
analogWrite(leds[j],0); //write value of '0' for brightness(?)
}
delay(80); //play with this, low as possible for faster 'off'.
You're likely to see them cycle off sequentially rather than all instantaneously flip off together with that though.