TaskScheduler.FromCurrentSynchronizationContext() will force it to run on the main thread without causing any trouble within unity. However, it does not await correctly as from what I've read it does not recognise async lambdas, instead thinking there just synchronous. And skipping to the end pretty much immediately.