New update
You should not do a full loop during each switch, but only one iteration of the loop.
I did not run the sketch, just out of my head.
Some tips: print out the variables during each loop, so you get a clear idea what is happening (so all loop states and indices, and the periodIndex).
int LED = 3;
int LED2 =10;
int LED3 = 9;
bool loop1state, loop2state, loop3state; // True if running, false if off
int loop1index, loop2index, loop3index; // Iterator values
int periodIndex = 0; // starting with 0, increasing every 10 ms
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Update loop enablers.
switch(periodIndex)
{
case 0:
loop1state = true;
loop1index = 0;
break;
case 1000:
loop2state = true;
loop2index = 0;
break;
case 1500:
loop3state = true;
loop3index = 0;
break;
case 4000:
periodIndex = 0;
break;
}
if (loop1state)
{
analogWrite(LED,loop1index++);
loop1state = loop1index < 256;
}
if (loop2state)
{
analogWrite(LED2,loop2index++);
loop2state = loop2index < 256;
}
if (loop3state)
{
analogWrite(LED3,loop3index++);
loop3state = loop3index < 256;
}
periodIndex++;
delay(10);
}