Not enough time to study the script - apologies. But do consider looking into Async Physics Tick - not only does it run on a separate thread, but also does so at a fixed interval.

Move my simulations over and never looked back, it seems to be working great. Admittedly, it’s a somewhat new feature so tread with care.
edit - this: