Попробуйте для начала процедуру Work сделать "безобидной" (чтоб она ничего не делала). Если Delphi всё равно будет падать, значит проблема точно не внутри Work. Потом, потихоньку добавляйте функциональность внутрь Work до того момента пока не начнёт падать...

______________
P.S. В дельфийский код не мешало бы еще добавить CloseHandle(h)...