Alternative collision detection methods? (c#)

I have a scene where I have several objects colliding, often even overlapping each other (I want this), and I’ve got the code performing pretty much the way I want, with simply

void OnTriggerEnter(Collider other) 
{
	colliding = true;
}
void OnTriggerExit(Collider other)
{
	colliding = false;
}

But now I’ve run into two snags.

  1. EDIT: SOLVED. Look at the comment below. OnTriggerExit mostly works, but not always. When I move one of the colliding objects away too fast, especially when it was just touching and not overlapping, this function never fires off, and the object is stuck in a perpetual “colliding” state. Is there any way to make it more… sensitive?

  2. How can I differentiate between when objects are just touching and overlapping?

Additionally, the collision sphere thing won’t do here, as all my objects are rectangularly shaped. Help?

try checking distance from the center of the objects rather than OnTriggerExit()

ie. subtract the two transforms and get the squared magnitude should work