I believe I've found the solution to this question.
The trick is to create a converter for the data type ourselves and then register that converter. I hope Microsoft resolves this on their side in the future.
The converter itself worked straight off the bat from this StackOverflow answer c# - How can I serialize a double[,] 2d array to JSON using System.Text.Json? - Stack Overflow
On my API I can't pass in options every time the JSON arrives at the controller so I registered it in startup.cs, it's also a lot cleaner.
services
.AddControllers()
.AddJsonOptions(options => options.JsonSerializerOptions.Converters.Add(new Array2DConverter()));
Now I'm able to entirely use system.text.json without mixing in Newtonsoft.