Примером может быть случай, когда работаешь на WPF или WinForms, в которых выполнение происходит в UI потоке. Тогда есть смысл создавать фоновый поток и await_ить его. И тут не имеет значения будет это вычисление на микропроцессоре или же это IO bound задача. В остальных же случаях и вправду, как мне видится, лучше не await_ить CPU bound задачи, а выполнять их синхронно. Исключением может быть разве что случай, когда выполняешь эти задачи параллельно, а затем пишешь await Task.WhenAll().
Примером может быть случай, когда работаешь на WPF или WinForms, в которых выполнение происходит в UI потоке. Тогда есть смысл создавать фоновый поток и await_ить его. И тут не имеет значения будет это вычисление на микропроцессоре или же это IO bound задача. В остальных же случаях и вправду, как мне видится, лучше не await_ить CPU bound задачи, а выполнять их синхронно. Исключением может быть разве что случай, когда выполняешь эти задачи параллельно, а затем пишешь await Task.WhenAll().