can one simply nest if statements ?

// basic IR sensor actuates servo without time test
if (IRvalue < 3) { //sensor output went low TRIGGERED
delay (6000); // eliminate redundant triggering ... similar to switch bounce
myservo.writeMicroseconds(1200); // tell servo to go to active position
delay(1200); // wait for the servo to reach the position
myservo.writeMicroseconds(600); // tell servo to return to passive position
delay(100);
count=count+1;// tally event
}

// whats the best approach ?
// to test to test if IRvalue <3 still persists over time

if (IRvalue < 3) { //sensor output went low TRIGGERED
delay (6000); // wait a while
if (IRvalue < 3) { //sensor output still low
myservo.writeMicroseconds(1200); // tell servo to go to active position
delay(1200); // wait for the servo to reach the position
myservo.writeMicroseconds(600); // tell servo to return to passive position
count=count+1; //tally time validated event
}
} // ... loop again

Please, use the ## tags to put your code in.

About your question, I think the first was good enough... although why not use a while loop?

int count = 0; 
while (IRValue <3 && count <12)
   {
   delay(500);
   count++;
   }
count = 0; 
...

This way, if the IRValue goes high, the debounce is made and if it takes longer than 6000us, it pulls out too. Would it work like this for what you intend to do?

Or do it is a blink without delay kind of format.
Have an outer loop that commands actions every 100mS or so.
Give a command that takes 1.2 Seconds, check every 100mS if the time has elapsed and do the next processing needed on it.
Can be reading other sensors & stuff while waiting for the servo to move.