Обязательно оберните события для каждого в try-catch, так как они будут выполняться в потоках из пула потоков. Если во время обработки этого события возникнет исключение, ваша служба может неожиданно прекратить работу. Вам также следует свести к минимуму обработку в событии FileSystemWatcher, например, просто добавьте путь к файлу в очередь, а затем один из ваших таймеров или фоновый рабочий обработает очередь.