Вообще, тут надо просто отладить, непонятно на каком шаге AV возникает, что при этом в логах, что делает в это время поток который должен разбудиться.
Вангую, что в
- Код: Выделить всё
- FScheduler^.Suspended
Это нужно обязательно проверить
[Дополнение]
Действительно, на такую мелочь и внимания не обращал. Все заработало.
плюс код присваивания FSheduler
- Код: Выделить всё
- procedure TTaskScheduler.CreateTaskThread(TaskItem:TTaskItemPTR; AwakeMe:boolean); //not tested
 var
 NewTask:TTaskThread;
 Delay:Longint;
 begin
 NewTask:=TTaskThread.Create(true);
 NewTask.FreeOnTerminate:=FALSE;
 NewTask.AwakeScheduler:=AwakeMe;
 NewTask.TaskItem:=TaskItem;
 NewTask.FScheduler:=@Self; //<-
 ....
 NewTask.Delay:=Delay;
 NewTask.Start;
Всем спасибо.



