While I disagree with your hypothesis that "it takes more than twice as long to write code when you test it" (because you discount the bug fixes that are you deferring until later rather than discovering them with TDD), I do agree with one of your points:
"Testing every bit of code" is unwise.
I am a test-obsessed TDDer. That said, I do not test everything. I test proportionately to the cost of failure for a given particular feature.
Zero cost of failure -> zero to very few tests
High cost of failure -> many tests sometimes with full path testing
This warrants discriminating degrees of test coverage:
* Partial coverage: not all of the code under test is executed
* Full coverage: all code under test is executed
* Path coverage: all code under test is tested for every possible path that it can be executed
Without path coverage, any suite of tests is potentially imperfect. Therefore, as Stu Halloway sometimes presents about, it is extremely possible to fail yet still have full test coverage.