Thank you both for such a fast response, and for the time taken to answer my question - it is much appreciated! Apologies for my delay as well, I didn't receive a notification.
As for your advice, I have not yet had time to implement your suggestions; I simply wanted to post a quick response to let you know I haven't abandoned!
The 64 step, for clarity, is a loop to adjust the brightness from 0-64 and 64-0 again, which is how my NeoPixel ring pulses.
Also, this is what the rep at Adafruit prescribed exactly:
"That's a side-effect of how your code is written. The functions that animate the NeoPixels like this
one run a complete 64-step sequence before execution returns to loop() so the CPU can check for
more incoming control packets.
If you want to read input while an animation is running, you'll need to rearrange the code so it
only displays a single frame of the animation before checking for BLE input again.
The basic structure you want is demonstrated in the BlinkWithoutDelay example."
And you're correct Paul that I'm not great with code, the code is a Frankenstein of my own input and other example codes.
My code to pulse my NeoPixel currently resides in a for loop outside of the main void(loop). Should this be the proper way of creating a pulse, or am I able to place this code within the main void(loop) as opposed to outside?
Thanks in advance for your patience!