Replace delegate BeginInvoke/EndInvoke with Tasks
AsyncTextureLoad and AsyncTerrainNavMeshBake ran their work with
Action.BeginInvoke, which .NET doesn't support: asynchronous delegate
invocation throws PlatformNotSupportedException under CoreCLR. They now
start it with Task.Run, which works the same on Mono. isDone is true once
the task finishes, as it was once the callback ran; an exception from the
work now surfaces from isDone on the main thread instead of being thrown
by EndInvoke on a pool thread, which left the yield instruction waiting
forever.
Cherry-picked unchanged from unity_6.7.0's changeset
170212 (85e7d8425d1,
"Replace BeginInvoke/EndInvoke with Tasks for CoreCLR compatibility").
(cherry picked from commit 85e7d8425d14fe53468250fa25a0d75a81635c31)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>