"this fuction will have a minimum delay of 4000microseconds"
If you mean this interrupt handler will take a minimum of 4000 microseconds to execute you need to rework this so that it doesn't.
Another thing to note, I believe delay() will not work inside an interrupt handler. Reason being, delay() relies on interrupts to work properly, but inside an interrupt handler interrupts are disabled.
There will be ways to achieve your objective, but they will be different from what you think you want to do
Post your problem details for more help.