LightningBolt:
I noticed that both the ESP8266 and NRF24L01 require that the loop be put on hold in order to listen for oncoming connections.
That is certainly not true for the nRF24. All you need to do is check if there is a new message, read it if there is, otherwise do something else.
Have a look at this Simple nRF24L01+ Tutorial.
I suspect your information is also incorrect wrt the ESP8266. With the ESP8266 you do have to ensure that your code in loop() is fast enough to allow the WiFi activity to have the use of the processor at frequent intervals.
For pseudo- multitasking have a look at the demo Several Things at a Time. Note how each function runs very briefly and returns to loop() so the next one can be called. And there may be dozens of calls to a function before it is actually time for it to do anything.
...R