QUnit start/stop disrupts test execution order
===

I'm running a set of QUnit tests that use module level `setup` and `teardown` methods. I've noticed that using `start()` and `stop()` inside my tests appears to disrupt when these get called, which causes problems as certain items made available in my setup are not available to some tests that run. Here's a sample of my test module:

    module('Class Foo', {
      setup: function() {
        console.log('setup called');
      },
      teardown: function() {
        console.log('teardown called');
      }
    });

    test('Test1', function() {
      stop();
      console.log('test1');
      ok(true);
      start();
    });

    test('Test2', function() {
      stop();
      console.log('test2');
      ok(true);
      start();
    });

    test('Test3', function() {
      stop();
      console.log('test3');
      ok(true);
      start();
    });

This yields the console output (note that setup is called twice, then not again):

    setup called
    test1
    teardown called
    (2)setup called
    test3
    teardown called
    test2
    teardown called 

Modifying my tests to remove the start/stop:

    test('Test3', function() {
      console.log('test3');
      ok(true);
    });
Yields a more expected order of execution:

    setup called
    test1
    teardown called
    setup called
    test2
    teardown called
    setup called
    test3
    teardown called 

Am I misunderstanding something about how this should be functioning?