C# 5 Async Await .Task.Factory.StartNew cancellation
It's better to use CancellationTokenSource(TimeSpan) constructor to set the cancellation after 5 seconds.

Also, Task.Run method is a recommended way to run compute-bound tasks (see remark here).

Other issues worth noting:


by conventions asynchronous methods should have a suffix Async
using keyword is a recommended way to correctly dispose IDisposable objects
if a task to be cancelled cannot return correct results (according to business requirements) it's recommended to throw OperationCanceledException by calling token.ThrowIfCancellationRequested() method.

private async void SaveDataAsync() 
{
    if (GetActiveServiceRequest() == null)
        return;

    var cancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(5)).Token;
    this.ShowWizardPleaseWait("Saving data...");

    var someTask = Task.Run&lt;bool&gt;(() =&gt;
    {
        // Set sleep of 7 seconds to test the 5 seconds timeout.
        System.Threading.Thread.Sleep(7000);

        cancellationToken.ThrowIfCancellationRequested();

        // if not cancelled then save data
        using (App.Data.EmployeeWCF ws = new App.Data.EmployeeWCF())
        {
            return ws.UpdateData(_employee.Data);
        }
    }, cancellationToken);

    try
    {
        this.DialogResult = await someTask
            ? DialogResult.OK
            : DialogResult.Abort;

        btnOK.Enabled = true;
        this.Close();
    }
    catch(OperationCanceledException)
    {
        MessageBox.Show("Timeout. Please try again.")
    }
    finally
    {
        this.HideWizardPleaseWait();
    }
}