writing unit tests that cover every single line of code in large apps (10 million lines of code) is impractical. Just as giving the same testing effort to all functionality in an app is not wise. And actually it doesn't matter the size of the app...focus on what matters to the customer and devote less testing to low-priority components.
Unit testing is not designed to validate that UI elements are appearing properly....this is a GUI test.
All these answers assume the app has a DB which of course all don't.
Measuring performance of key algorithms?
What about writing tests to catch memory leaks?
Instantiating classes on the stack and heap? (it's been 9 years since I was in R&D so I may not have this terminology right).
Overloaded functions called with appropriate parameters to exercise the function when it behaves differently?
Writing tests for try/catch statements?
Making sure your test environment doesn't contain references to local machine specifics so the unit tests can be executed on any machine?
There's more but I'll stop here.....
I think I'd have to disagree w/ your checklist for unit testing....
Reserve a few months every so often and preview retirement throughout your career. You won't regret that a 35 year career was reduced to 34 years to take vacations measured in months in order to remember what a stress and care-free life is all about.
Books and hard work will get you anywhere you want to go.