The code looks like a very quick and dirty solution. When I see, that a function like takePulse() disables interrupts without re-enabling them its ugly. When you need to disable interrupts, you have to re-enable them, as soon as possible.
You are enabling however interrupts in the main loop(), where you attaching the ISR in EACH !!! loop!
attachInterrupt(..) is something, which needs to go in the setup() block, if there are no very special reasons, that you attach and detach different ISR depending on your programs status.
It looks for me, that you have found a very partial piece of a program from early development state.
The third result in google brought me this link, when I searched for the possible origin of your code fragments:
https://github.com/wilbefast/mechanic-human-beings/tree/master/PulseSensorAmped_Arduino_1dot1That seems to be the original avr based code, which was used as base for your code. Try to organize your code similar. All ISR related stuff needs to go to setup. disabling and enabling of interrupts should always be symmetric and as close to that code position, which needs it.