Recommended way to write asynchronous with blynk?

What is the recommended way to write asynchronous code with blynk? I have a project I’m setting up on a pet wearable as my housemate always insists on bringing her cat north with her and letting it roam around the woods behind the campsite. Besides the obvious risks to the cat form the local predators, it sometimes means the cat decides to go to sleep out under a bush somewhere when she and I are supposed to be packing up to leave.
I picked up a small BLE dev board and want to set it up to flash and LED and play tones on a piezo speaker when triggered via the bluetooth. We can use the bluetooth scanning on our phones to know if the cat is within range, then if it’s zonked out somewhere, I want to be able to trigger the tone and the led.
I know how to set up a virtual pin to run a chunk of code, and how to use counters to handle things like flashing an LED in a loop over time. Will something as simple as that work in the main loop along with the blynk.run()? Or is there another preferred method?
The chip on the device is an ATMega328p

Have a read of this:

Pete.