fairy-stockfish was just an example. It was derived from Stockfish. I have tested it with several UCI engines, including all Stockfish versions from 12 to 16, Polyfish, Komodo Dragon and others. When exactly the crash occurs varies. This also depends on how the chess engine was compiled. With fairy-stockfish it runs reasonably stable at a depth of 12 half-moves. It "only" crashes every 100th game. But 12 half-moves is far too little to do anything sensible with it.
A buffer overflow was my first assumption. So I installed it in between so that after each move the engine is restarted, FEN is sent and global.output="" is set. Unfortunately, that didn't help. There were also problems because I change the engine in the middle of the game, but I solved that. Now it is called, I send FEN for every move, but it runs through.
My current guess is this: Greater depth means that the engine pauses at some point, so it doesn't send anything. I suspect that because the EXE is not responding, synchronization is lost.
If you give me another contact, Discord or mail, I can also send you screenshots or the current version. It's a pretty big project by now and it would be a shame if it were to fail.