engine: move audio close into finished()

The finished() function is no longer called in stop() and wait() as
those are called outside the thread and calling audio close in those
would hang the application.

This is part of a series to rework speak_tts_thread to only use the
synthesis_callback API.