C#: Avoid Thread.Start use Task.Run

For the last few years I've been creating Thread's to handle workload that would case the UI thread to freeze like the following:

var t = new Thread(() => DoSomething());
t.Start();
t.Join(); //<- Freezes UI even though MessagePumping continues...

But recently I read that the use of Task's is the more commonly used option nowadays. As its deeply integrated into the .NET Framework this approach works even better and using less code:

await Task.Run(() => DoSomething()); //<- Doesn't freeze UI

Also Task can return values more easily. For example:

var success = false;
await Task.Run(() => success = DoSomething());