Yeah, they are indeed mutually exclusive. Each unit has it's own dependencies. If you want the units listed in order of when they are needed, you aren't going to be able to make them look "tidy."
Sounds like you want a hybrid approach. I don't see how that could be done without manual work, but besides, it would defeat your originally stated goal.
Personally, I find the overhead of locating units during compilation to be insignificant, so I always prefer a logical ordering because my brain will be slowed down by illogical ordering more than the compiler will be sped up by it!
I my experience, the only thing that really matters is not having unnecessary units in the interface section. Anything that isn't needed should be removed, and anything that isn't needed before the implementation section should be moved to the implementation section.