Итак: это тот случай, когда компилятор менее чем полезен, что усугубляется тем, что async / await et c. все еще довольно нов для меня, и не всегда это легко понять.
По сути, я упустил одну вещь:
onRetryAsync: async (e, ts, i, ctx) =>
... асин c перед подпись, которая, кстати, отсутствовала в примерах кода, на которые я ссылался.
Тип аргумента onRetryAsyn c - Func<Exception, TimeSpan, int, Context, Task>
, и его можно объявить так:
Func<Exception, TimeSpan, int, Context, Task> nopBlock = async (e, ts, i, ctx) =>
{
// Do something here
// The "something" should be async
};
В конце концов я понял это, посмотрев на сигнатуру перегрузки WaitAndRetryAsyn c, которую я вызывал.