Finalmente não é executado quando em um thread em execução em um serviço do Windows

Alguém pode explicar por que esse bloco finalmente não é executado? Eu li posts sobre quando esperar que finalmente o bloco não seja executado, mas esse parece ser outro caso. Esse código precisa do TopShelf e do log4net. Estou executando o .net 4.5

Eu acho que deve ser o mecanismo do Windows Service que aciona exceções não tratadas, mas por que ele está sendo executado antes que o bloco finalmente tenha terminado?

using log4net;
using log4net.Config;
using System;
using System.Threading;
using Topshelf;

namespace ConsoleApplication1
{
    public class HostMain
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<HostMain>(s =>
                {
                    s.ConstructUsing(name => new HostMain());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });

                x.RunAsLocalSystem();
                x.SetServiceName("TimerTest");
            });
        }

        public void Stop()
        {
            LogManager.GetLogger("MyLog").Info("stopping");
        }

        public void Start()
        {
            XmlConfigurator.Configure();

            LogManager.GetLogger("MyLog").Info("starting");

            new Thread(StartServiceCode).Start();
        }

        public void StartServiceCode()
        {
            try
            {
                LogManager.GetLogger("MyLog").Info("throwing");

                throw new ApplicationException();
            }
            finally
            {
                LogManager.GetLogger("MyLog").Info("finally");
            }
        }
    }
}

saídas

starting
throwing
stopping

Edição: por favor, comente porque você está fazendo o downgrade, talvez você não entenda o problema? Eu vejo um grande problema aqui. Você escreve alguma lógica de domínio que faz coisas importantes na cláusula finalmente em Exceção. Se você hospedar a lógica em um serviço do Windows, o design será interrompido repentinamente.

questionAnswers(5)

yourAnswerToTheQuestion