I've also been facing the same issues with Polly in Pilot2ATC for a few years now. Just started using P2ATC more again with MSFS and finding it frustrating with the multiple restarts. If there is a simpler way to force the SAPI calls to work without a full P2ATC restart, then please let me know here.
I researched to see if Amazon had done any changes to address the issue. I found that NicolasConstant had already tried to write a sample .NET application which exhibits the same issues: https://github.com/awslabs/amazon-polly-tts-for-windows/issues/16
Unfortunately, I don't see any PRs (code updates) on the Amazon Polly TTS Engine for Windows code base that would address the issue. In fact, I don't see any active work being done on this project based on the logs. So we may be out of luck.
I'm currently primarily writing in C# these days. So my C++ code is very rusty. However, I may pull down the code and see if I can't narrow down where the issue is happening. If anyone else has already gone down that path, please message back here.