[matter_yamltests] Do not include the pre/post processing to the test timeout (#26680)

diff --git a/scripts/py_matter_yamltests/matter_yamltests/runner.py b/scripts/py_matter_yamltests/matter_yamltests/runner.py
index f87f94d..6f201c8 100644
--- a/scripts/py_matter_yamltests/matter_yamltests/runner.py
+++ b/scripts/py_matter_yamltests/matter_yamltests/runner.py
@@ -144,8 +144,8 @@
                 continue
 
             loop = asyncio.get_event_loop()
-            result = loop.run_until_complete(asyncio.wait_for(
-                self._run(parser, runner_config), parser.timeout))
+            result = loop.run_until_complete(
+                self._run_with_timeout(parser, runner_config))
             if isinstance(result, Exception):
                 raise (result)
             elif not result:
@@ -157,11 +157,20 @@
 
         return parser_builder.done
 
-    async def _run(self, parser: TestParser, config: TestRunnerConfig):
+    async def _run_with_timeout(self, parser: TestParser, config: TestRunnerConfig):
         status = True
         try:
             await self.start()
+            status = await asyncio.wait_for(self._run(parser, config), parser.timeout)
+        except Exception as exception:
+            status = exception
+        finally:
+            await self.stop()
+            return status
 
+    async def _run(self, parser: TestParser, config: TestRunnerConfig):
+        status = True
+        try:
             hooks = config.hooks
             hooks.test_start(parser.filename, parser.name, parser.tests.count)
 
@@ -214,5 +223,4 @@
         except Exception as exception:
             status = exception
         finally:
-            await self.stop()
             return status