I have managed to use your script and end-up with two part circles for those which overlap the 180 longitude line.

The way I did it: 
- Create your buffer layer
- Reproject it to EPSG:3832 ("Reprojected" layer in my screenshot)
- Create a layer(4326) with a line at 180 deg longitude
- Reproject that line to EPSG:3832
- Buffer that line (still in 3832) as a "BufferedLine" layer. Buffering width should be wide enough to be sure that it spans across the 180 line
- Set the current rendering CRS to 3832 to have a clearer view, you should see the circles across the antimeridian, visually split by the buffered line:
[![enter image description here][1]][1]





- Apply a Difference transformation (Input: Reprojected, Overlay: BufferedLine, set the Input options to "Do not filter" for Invalid Features if you have errors. This should split the cirle in two parts that don't overlap the 180 longitude line. I don't know why, at first it did not work, the circle was not split, I had to try again.
- Resulting "Difference" layer should show fine in EPSG:4326.
- You can reproject "Difference" to EPSG:4326 

Easter side, faulty geometry in green, new half geometry in grey:
[![enter image description here][2]][2]

Western side:
[![enter image description here][3]][3]

Full view without the inappropriate geometry:
[![enter image description here][4]][4]

I hope this works for your whole dataset


  [1]: https://i.sstatic.net/qmyJt.png
  [2]: https://i.sstatic.net/mxgsw.png
  [3]: https://i.sstatic.net/6t71F.png
  [4]: https://i.sstatic.net/RVZlX.jpg