First of all, I don't think that the code in your example compiles. You need to remove the 'async' keyword from SendAsync2.
If you do that, then these methods can be used interchangeably, so no, there is no difference in this case. I would prefer the one without async/await.
However, there are cases where it would seem that there is no difference, but the difference lies in the details. Consider for example this code:
async Task<X> Get()
{
using (something)
{
return await GetX();
}
}
If you were to change this to:
Task<X> Get()
{
using (something)
{
return GetX();
}
}
then the using block no longer protects the execution encapsulated in x, and something will be disposed earlier than it would in the first case. Important for example when something is a Entity Framework context.
The same goes for return await inside try blocks.