Serviço do Windows é executado, mas para de processar após dois dias

Eu já vi alguns posts sobre esse problema, mas não que parecem se encaixar nos meus critérios.

Dito isto, este é o primeiro que eu construí que "precisa" executar uma quantidade enorme de lógica. Tudo funciona bem por alguns dias, mas depois dessa lógica para de funcionar sem log no visualizador de eventos nem acionamento de um email (exceções).

Gostaria de saber se minha lógica não está correta ... Procurando conselhos e sugestões.

public partial class QuayService : ServiceBase
{
    private System.Timers.Timer m_mainTimer;
    private bool m_timerTaskSuccess;
    private Email _email;
    public QuayService()
    {
        InitializeComponent();
        _email = new Email();
    }

    protected override void OnStart(string[] args)
    {
        try
        {
            // Create and start a timer.
            m_mainTimer = new System.Timers.Timer();
            m_mainTimer.Interval = 5000;   // every 5 seconds
            m_mainTimer.Elapsed += m_mainTimer_Elapsed;
            m_mainTimer.AutoReset = false;  // makes it fire only once
            m_mainTimer.Start(); // Start

            m_timerTaskSuccess = false;

            _email.SendEmail("Quay", "(Shopify)Quay Service Started",
                "(Shopify)Quay Service Successfuly Started");

            EventLog.WriteEntry("(Shopify)Quay Service Started...");
        }
        catch (Exception ex)
        {
            // Log/Send Email
            _email.SendEmail("Quay", "Error starting (Shopify)Quay Service", ex.Message + " " + 
                ex.InnerException.Message);

            EventLog.WriteEntry("Error starting (Shopify)Quay service and timer..." + ex.Message + " " +
                ex.InnerException.Message);
        }
    }

    protected override void OnStop()
    {
        try
        {
            // Service stopped. Also stop the timer.
            m_mainTimer.Stop();
            m_mainTimer.Dispose();
            m_mainTimer = null;

            _email.SendEmail("Quay", "(Shopify)Quay Service stopped",
                "(Shopify)Quay Service Successfuly Stopped");

            EventLog.WriteEntry("(Shopify)Quay Service stopped...");
        }
        catch (Exception ex)
        {
            _email.SendEmail("Quay", "Error stopping (Shopify)Quay Service", ex.Message + " " +
                ex.InnerException.Message);

            // Log/Send Email
            EventLog.WriteEntry("Error stopping (Shopify)Quay timer and service..." + ex.Message + " " +
                ex.InnerException.Message);
        }
    }

    void m_mainTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        try
        {
            var orderUoW = new OrderUoW();
            orderUoW.Create();

            m_timerTaskSuccess = true;
        }
        catch (Exception ex)
        {
            //Error with timer elapsed
            m_timerTaskSuccess = false;

            _email.SendEmail("Quay", "Error creating (Shopify)Quay order(s)", ex.Message + " " +
                ex.InnerException.Message);

            EventLog.WriteEntry("Error creating (Shopify)Quay order(Time elapsed event)..." + ex.Message
                + " " + ex.InnerException.Message);
        }
        finally
        {
            if (m_timerTaskSuccess)
            {
                m_mainTimer.Start();
            }
        }
    }
}

Para chegar a esse ponto, eu "pesquisei" e "SO'ed" para encontrar o melhor uso do temporizador ... Eu também tenho uma camada de teste ingênua que reproduz o que está no serviço, posso executar essa multa sem exceções, mas este está me deixando louco.

Qualquer ajuda realmente apreciada!

//EDITAR

Uma pequena explicação sobre:

var orderUoW = new OrderUoW(); 
orderUoW.Create();

OrderUoW é uma classe no meu serviço que herda deBatchOrder responsável por muitas ações, incluindo a conexão com dois bancos de dados e a pesquisa da API do shopify ...OrderUow é puramente se separar da camada de negócios, mas dá acesso aos métodos "x".

Tudo funciona perfeitamente por dois dias, mas parece parar. Não estou atingindo os limites de pedidos no shopify ... então, no momento, estou perdida.

questionAnswers(1)

yourAnswerToTheQuestion