Keep your ISR as short as possible... that is to say, set a flag inside your ISR that a TDC event has occurred, then outside the ISR, clear the flag and do the pulse stretching for the LED... in pseudo code:
void setup() {
attachInterrupt(digitalPinToInterrupt(inputCrank), TDC, RISING);
}
void loop() {
if (tdcFlag) { // check for flag being set in ISR
tdcFlag = 0; // reset flag
blinkLED();
}
}
void TDC() {
noInterrupts(); // suspend interrupts
tdcFlag = 1;
interrupts(); // resume interrupts
}