Recommendations or Best practices to integrate Unity into Existing .NET Service?

I’m building some software that utilizes the Unity physics engine for certain components.

Currently, I have a .Net Service that handles things that are better suited to plain .Net (REST API, Database Persistence, etc). Unity and this service communicate via RabbitMQ.

I’ve seen the Unity as a Library documentation: Unity - Manual: Using Unity as a Library in other applications
The recommendation from the documentation is just to have my service run the Unity build.

Some requirements and nice to haves.

  1. Would prefer both Windows and Linux support. Windows is our primary target, but would like to support Linux eventually.
  2. Service would normally operate in headless mode, but occasionally would need to run in graphics mode for debugging. I don’t have any models/textures, this would purely be gizmos and ALINE drawing objects.
  3. Some way to catch Unity errors/crashes and restart the process.

It seems straightforward to just have the .Net service run my unity build in a separate process.
Was planning on using CliWrap to manage the process execution.
I’ll have a heartbeat message set up between Unity and my core service.

Does anyone have any recommendations or best practices they could share? Thanks!