¿Desactivar la animación de la barra de progreso de .NET al cambiar el valor?

Me doy cuenta de que hay otras preguntas sobre SO con respecto a las animaciones y las barras de progreso, pero parecen girar en torno a deshacerse de la animación dibujada en la parte superior de la barra de progreso, es decir. lo más destacado que lo recorre.

Lo que quiero hacer es deshacerme de la animación que se usa cuando configuro el nuevo valor de la barra de progreso. El problema que tengo ahora es que la acción que se está ejecutando se completa y luego la barra de progreso continúa aumentando hasta su posición máximadespué la acción se ha completado.

n otras palabras, si configuro la propiedad Value de la barra de progreso en 50, quiero que viaje a la posición intermedia (si max es 100) inmediatamente, no acumule lentamente la barra de progreso en esa posición como lo hace ahora.

Si realmente hay una pregunta sobre SO que ya se ocupa de esto, solo cierre como duplicado y felizmente la eliminaré, pero no pude encontrar ninguna.

Este es el que encontré: Desactivar la animación de WinForms ProgressBar, y trata el punto culminante que está animado, y eso no es de lo que estoy hablando.

Aquí hay una @ simp LINQPad demo que muestra el problema:

void Main()
{
    using (var fm = new Form())
    {
        var bt = new Button
        {
            Text = "Start",
            Location = new Point(8, 8),
            Parent = fm,
        };
        var pb = new ProgressBar
        {
            Top = bt.Top + bt.Height + 8,
            Width = fm.ClientRectangle.Width - 16,
            Left = 8,
            Parent = fm
        };

        bt.Click += (s, e) =>
        {
            bt.Enabled = false;
            Thread t = new Thread(new ThreadStart(() =>
            {
                Thread.Sleep(1000);
                bt.BeginInvoke(new Action(() => { pb.Value = 50; }));
                Thread.Sleep(1000);
                bt.BeginInvoke(new Action(() => { pb.Value = 100; }));
                bt.BeginInvoke(new Action(() => { bt.Enabled = true; }));
            }));
            t.Start();
        };
        fm.ShowDialog();
    }
}

Edit 1: Este es el tema de Windows 7 Glass, así que sí, apuesto a que esto es específico para 7 o posiblemente también para Vista.

Aquí hay una animación GIF que muestra el problema, el proyecto desde arriba. Puede ver que tan pronto como el botón se habilita, 1 segundo después de que se haya establecido la marca de la mitad, la barra de progreso anima hasta el 100%,despué el botón se ha habilitado.

Como puede ver arriba, volver a activar el botón y habilitar la barra de progreso a 100 se realiza "al mismo tiempo". Básicamente, no quiero la acumulación progresiva de la barra de progreso, quiero que salte directamente al 50% y luego al 100% al mismo tiempo que el botón se habilita.

Edit 2: En respuesta a la respuesta de David Heffernan, así es como cambié el código anterior:

bt.BeginInvoke(new Action(() => { pb.Value = 51; pb.Value = 50; }));
Thread.Sleep(1000);
bt.BeginInvoke(new Action(() => { pb.Maximum = 101; pb.Value = 101;
                                  pb.Maximum = 100; pb.Value = 100; }));

Respuestas a la pregunta(5)

Su respuesta a la pregunta