I used to be ultra careful with engine bay cleaning, but I have sort of grown out out that.
Previously, I would use something like ONR, a couple of brushes, some towels and a water-based dressing to finish off. I would apply the ONR, wipe and brush what I could access, then use compressed air to drive dust/dirt and ONR out of the hard-to-reach places. The nature of ONR means you don't need to be as thorough in removing the residue like you would with something like APC.
Compressed air is useful at getting the dressing into the all the nooks and crannies, just use a towel close to shield the surrounding paintwork and windshield from being splattered with dressing.
My current method includes running water. Depending on the vehicle, I will place a plastic bag over the alternator/fuse box/battery where required. A saturated towel is useful in keeping the bag in place as you rinse. Most modern cars have their batteries and electrical junctions well covered with plastic trim panels.
Initial rinse -
Then apply APC to the whole engine bay, including the windshield scuttle and underside of the hood.
Then scrub with an assortment of brushes. An Ez-Detail/Daytona bristled brush is priceless for this job, able to reach down and into areas where other brushes or your hands can't go. Be sure to do the underside of the hood and scuttle panel at the same time.
After scrubbing, rinse the whole engine bay down.
It's then time for a water-based dressing. I've used a variety of products on engine bays, from Carpro Perl, 303 Protectant, KCx Motorplast, Chemical Guys VRP........................but the best by far is Meguiar's Hyper Dressing. I did two engine bays this week, both times using Motorplast, but I couldn't help thinking Hyper Dressing would have performed and looked better. For engine bays, I would use either 5:1 or 6:1 ratio for a natural/OE look.
For this task, I apply the dressing generously to the whole engine bay while its still wet. You can follow up with a blower, compressed air or by running the engine for 10 minutes, but as Hyper dressing self levels, you can simply close the hood and call it good. You may find the need to give it a final wipe the next day if required.
Hope that helps.