Raising an exception with the term "StopTest" in it will make sure test is stopped, but "TearDown" and rest of suite is executed.

script
given page MySuite with content !path lib/*.jar !define TEST_SYSTEM {slim}
given page MySuite.TestPageA with content | import | | fitnesse.slim.test | | constructor throws | stop test | | table never to be executed |
given page MySuite.TestPageB with content | import | | fitnesse.slim.test | | script | echo script | | check | echo | hello | hello |
given page MySuite.TearDown with content | import | | fitnesse.slim.test | | script | echo script | | check | echo | tear down after ${PAGE_NAME} | tear down after ${PAGE_NAME} |
given page MySuite.SuiteTearDown with content | import | | fitnesse.slim.test | | script | echo script | | check | echo | suite tear down executed | suite tear down executed |
test results for suite MySuite should contain table never to be executed <span class="ignore">Test not run</span>
ensure content contains <span class="pass">tear down after <a href="MySuite.TestPageA">TestPageA</a></span>
ensure content contains <span class="pass">echo script</span>
ensure content contains <span class="pass">tear down after <a href="MySuite.TestPageB">TestPageB</a></span>
ensure content contains <span class="pass">suite tear down executed</span>