title: DeleteTimerQueueTimer() access violation and/or deadlock
body: <p>Second DeleteTimerQueueTimer() generates access violation, or invalid parameter exception, or hangs indefinetely, depending on context. Google test code:</p>
  
  <pre><code>HANDLE hTimer = NULL;
  
  static VOID CALLBACK _TimerCallback(PVOID, BOOLEAN)
  {
      //::DeleteTimerQueueTimer(NULL, hTimer, NULL);
  }
  
  TEST(CTest, TimerQueue)
  {
      ASSERT_EQ(FALSE, ::DeleteTimerQueueTimer(NULL, hTimer, NULL));
      ASSERT_EQ(TRUE, ::CreateTimerQueueTimer(&amp;hTimer, NULL, &amp;_TimerCallback, NULL, 40, 0, WT_EXECUTEONLYONCE));
      ASSERT_TRUE(NULL != hTimer);
      Sleep(100);
      ASSERT_EQ(TRUE, ::DeleteTimerQueueTimer(NULL, hTimer, NULL));
      // ******** next line produces SEH or deadlocks *************
      ASSERT_EQ(FALSE, ::DeleteTimerQueueTimer(NULL, hTimer, NULL)); 
  }
  </code></pre>
  
  <p>[ RUN      ] CTest.TimerQueue
  unknown file: error: SEH exception with code 0xc000000d thrown in the test body.</p>