detachInterupt() from the inside of the interupt function?

detachInterrupt(en); //Does NOT detach????

I don't think this is not correct syntax. What Arduino are you using?

With this setup

const int en = 3; // Interupt Pin
attachInterrupt(digitalPinToInterrupt(en), enCha, FALLING); //Interupt on falling edge

Try

detachInterrupt(1);