This results in the status line being at the top rather than the middle of the dialog.

    printf "%s [%c]" "$msg... " "$spinstr" | dialog --title "$DIALOG_TITLE" \
              --keep-window --progressbox 6 70 >&3

Instead I would suggest something like

    printf "%s [%c]" $'\n'"$msg... " "$spinstr" | dialog --title "$DIALOG_TITLE" \
              --keep-window --progressbox 5 70 >&3