1. Knowing when it's okay to implement a "good enough" solution versus taking the time to implement the "academically correct" solution. Or otherwise put, knowing when to do things by the book, and when it's okay not to.
I'd go further: - knowing how to make the solution "the right level of good", as opposed to "academically perfect" or "unmaintainable hack". - being able to design and implement a "good enough" solution that is still reasonably maintainable (if needed) much better and/or faster than others
Knowing where on the scale to set that mark requires being able to bridge speed of implementation, execution, maintainable, upgradability and the overarching business goals you're building for.
So really a broad range of understanding that only "excellent" senior developers will possess