I think this might not cleanup properly if something other than a TestFail happens.  Maybe this whole section can go into a function, then wrap function inside a try...finally so clean-up can always happen?  Remember we never know what test is going to come next, it will expect a clean-state or problems will cascade.  Every test must ensure clean state at end.