Sorry for the delay on this. Haven't dug into the details of this yet but you should be able to do something like this to create your own RunAsync method and go from there:
using System;
using System.Threading.Tasks;
using ArcanaDevelopment.adTempus.ApplicationIntegration;
using ArcanaDevelopment.adTempus.Shared;
namespace UserScript
{
public class UserScript : ArcanaDevelopment.adTempus.ApplicationIntegration.UserScriptBase
{
public override Object Run()
{
var task=Task.Run(RunAsync);
task.Wait();
return task.Result;
}
private async Task<bool> RunAsync()
{
//do stuff
return true;
}
}
}