Нет лучшего способа сделать это.
Первое, что вы можете проверить - это System.Diagnostics.Trace.CorrelationManager.ActivityId. Если это равно Guid.Empty, то вы не находитесь внутри рабочего процесса, использующего DefaultWorkflowSchedulerService. К сожалению, ручной планировщик не устанавливает этот ActivityId, поэтому в этом случае он не помогает.
Кстати, этот ActivityId не имеет ничего общего с рабочим процессом, но является идентификатором активности трассировки E2E, который также имеет значение InstanceId рабочего процесса.