/// <summary>
        /// Execute an <paramref name="action"/> in the background.
        /// </summary>
        /// <param name="action">The action to run in the background.</param>
        /// <returns>The created thread.</returns>
        public static Thread FireAndForgetWithExpensiveStackTracePreservation(Action action)
        {
            FulcrumApplication.ValidateButNotInProduction();
            var context = new StackTracePreservation();

            return(FireAndForget(() => context.ExecuteActionFailSafe(action)));
        }