Argh... it's been several hours of trying to figure this out, and I'm going insane!
Problem: Using the TriggerEnter/TriggerExit and bools method works fine
except when the 2 objects are spawned on level start next to each other - they don't go through the OnTriggerEnter state because they are already there to begin with.
I've tried setting the scale of my child objects containing the trigger zones to 0 initially, and then as my mission starts, scaling them back to 1, but that doesn't work either - these 2 objects don't recognise that they're in each other's trigger zones.
Funnily enough, as I'm using iTween shake on my objects, if one of these 2 shakes, then suddenly one will go through the TriggerEnter state and will acknowledge the other. (though just one of them, they don't both then recognise each other)
I really don't know what to try next.
The annoying thing is that OnTriggerStay worked perfectly for me - I never had a single problem, but it was just way too expensive.