I'm very much a noob, but I had a similar challenge.
Perhaps someone can verify this but i might try reading the micros() at the point you want the 6 seconds to start then let 6 seconds elapse.
currentmicros = micros(); //record current time as currentmicors
delaytime = currentmicros + 6000 ;//add 6 seconds to the currentmicros and call it delaytime
when micros and delaytime are equal 6 seconds have passed.
Everyone has been helpful with my challenges, so I hope I have helped with yours.