[kernel][threads] fix threads-test cleanup

There were two test cases in threads-test where a thread was killed but
we didn't wait for the TERMINATED signal. If the thread kill is delayed
long enough, this can interfere with subsequent tests listening for
process debug exceptions.

FLK-233

Change-Id: I2038e83ba033c6c3ea248b73a50eb791012f4a2d
diff --git a/zircon/system/utest/core/threads/threads.cpp b/zircon/system/utest/core/threads/threads.cpp
index 0e4555d..749193c 100644
--- a/zircon/system/utest/core/threads/threads.cpp
+++ b/zircon/system/utest/core/threads/threads.cpp
@@ -778,6 +778,7 @@
     // Clean up.
     clear_debugger_exception_port();
     ASSERT_EQ(zx_task_kill(thread_h), ZX_OK);
+    EXPECT_EQ(zx_object_wait_one(thread_h, ZX_THREAD_TERMINATED, ZX_TIME_INFINITE, nullptr), ZX_OK);
     ASSERT_EQ(zx_handle_close(thread_h), ZX_OK);
 
     END_TEST;
@@ -803,8 +804,9 @@
     zx_handle_t suspend_token = ZX_HANDLE_INVALID;
     EXPECT_EQ(zx_task_suspend(thread_h, &suspend_token), ZX_ERR_BAD_STATE);
     EXPECT_EQ(suspend_token, ZX_HANDLE_INVALID);
-
     EXPECT_EQ(zx_handle_close(suspend_token), ZX_OK);
+
+    EXPECT_EQ(zx_object_wait_one(thread_h, ZX_THREAD_TERMINATED, ZX_TIME_INFINITE, nullptr), ZX_OK);
     EXPECT_EQ(zx_handle_close(thread_h), ZX_OK);
 
     END_TEST;