Interceptar método assíncrono que retorna Tarefa genérica <> via DynamicProxy

Minhas perguntas estão relacionadas a este postIntercepte a chamada para um método assíncrono usando DynamicProxy

Eu quero implementar interceptor que funciona com métodos assíncronos que retornamTask&nbsp;ouTask<T>&nbsp;resultado.

Eu uso o próximo código para retornarContinueWith&nbsp;resultado (para que o método chamador aguarde enquanto o interceptador termina o trabalho)

var task = invocation.ReturnValue as Task;
invocation.ReturnValue = task.ContinueWith(c => 
      { code that should execute after method finish });

O código acima funciona bem paraTask&nbsp;resultado, mas em caso deTask<T>&nbsp;resultadoContinueWith&nbsp;mudará o tipo de retorno deTask<T>&nbsp;paraTask. Preciso chamar o método sobrecarregado ContinueWith que retornaTask<T>, mas para isso eu preciso lançarinvocation.ReturnValue&nbsp;paraTask<T>

Não encontrei maneira de transmitir dinamicamente de nenhuma maneira. Alguém sabe como fazer isso?

Também tentei chamar esse método via reflexão, mas o parâmetro é a função labmda que não pode ser passada diretamente.