After the suggestion of @PedroLamas i made it work, not sure if this is the nicest way or the most elegant but it gets the job done.
Im making the call that takes time to complete on another thread with Task.Factory and making it awaitable, and at the end just update the UI with the Dispatcher.
public async void LoadAsyncDataWithTask()
{
IEnumerable<Reminder> inactiveList = null;
Action action = () =>
{
Thread.Sleep(2000);
inactiveList = _repository.GetRemindersByStatusId(2);
};
await Task.Factory.StartNew(action);
Action action2 = () =>
{
if (inactiveList != null)
{
foreach(var item in inactiveList)
{
_model.InctiveReminders.Add(item);
}
}
};
Dispatcher.BeginInvoke(action2);
}