Fixed race between Win16 parent and child for first rescheduling
of child process. This fixes WinExec returning too early.

diff --git a/loader/task.c b/loader/task.c
index 118696b..69bdc8c 100644
--- a/loader/task.c
+++ b/loader/task.c
@@ -228,8 +228,11 @@
     SEGTABLEENTRY *pSegTable = NE_SEG_TABLE( pModule );
     CONTEXT86 context;
 
-    /* Add task to 16-bit scheduler pool */
-    TASK_Reschedule();
+    SYSLEVEL_EnterWin16Lock();
+
+    /* Add task to 16-bit scheduler pool if necessary */
+    if ( hCurrentTask != GetCurrentTask() )
+        TASK_Reschedule();
 
     /* Registers at initialization must be:
      * ax   zero