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:
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:
Full view without the inappropriate geometry:
I hope this works for your whole dataset