If it worked fine before, which version of VoiceAttack were you using? I went through my archive, and the latest version I have that this still works with is v1.5.8, in v1.5.12 it doesn't(I don't have any intermediate versions to test with).
You can check the "Wait until speech completes before continuing command" option for the "Say Something with
Text-To-Speech" action, which will "pause" automatically as long as TTS is speaking, to minimize the delay before switching profiles.
Otherwise, you could put a command into your profiles that's triggered on profile load. It's not illogical for the profile you're switching away from to stop executing when the other one loads, in my opinion.