Подозреваю, что первый косяк тут:
Код:
procedure sService(P: Pointer); stdcall;
begin
///////////////////////////// Запуск службы
writeln('Start thread)');
end;
Сервис не может выводить никакие сообщения, тем более - под Вистой и 7 (Вообще-то это не совсем так, но как это сделать - целая история).
Я еще раз говорю - воспользуйся оберткой Дельфи для сервиса. На порядок меньше кода писать надо и все просто и понятно.