Only teardown once set up has finished successfully.

I'm... confused.  On line 114 it talks about adding setups at the beginning (but uses a push), and teardowns at the end (but uses an unshift).  This also doesn't make sense with behaviour - on a module which has two complete setups and teardowns queued after rotation thrashing, I think it should be executed as "S1 T1 S2 T2" rather than "T1 S1 T2 S2" which will have memory leaks and errors...