In response to questions about the value add of Timed Tests in NUnit:
There are several uses for timed tests, most of which fall under the umbrella of performance testing.
1) You have a piece of code/hardware that you want certain functions to complete in less than a specified amount of time. If you already have a NUnit test that exercises this functionality, all you have to do is change your [Test] attribute to a [TimedTest(time limit)] attribute an now your unit test plays 2 roles, functional unit test, and performance test.
2) Performance optimization regression testing. Say you have a segment of code that has been optimized, and has a timed test that verifies execution in less than a specified amount of time. When you run this unit test as you add to/refactor your code base, you will immediately be notified if you introduce code that has less performance than your tests allow.
3) Quickness in creating new performance tests. This is as simple as adding a new NUnit test fixture, and adding a timed test.
4) Integration of performance tests with unit tests. If you know how to write one, you know how to write the other. You don't need to integrate another testing framework to do basic performance monitoring.
5) Time limit on long running tests. Once a test times out, execution of the test stops, guaranteeing that a long running test will not slow up the build/test/deployment procedure that you have in place.
6) Add a category to all of your timed tests and with-in NUnit, you have a predefined set of performance tests to run, without checking boxes.
Also of note: I made a change to the code so that only the actual test is timed, not the setup and tear down as well. Get the updates here.