La imagen de fondo que estas usando pesa casi 3 megas, nunca cargara antes que el fondo. De hecho ninguna imagen cargara nunca antes que el color de fondo, pero si puedes hacer que el tiempo en el que se ve el fondo sea mucho mas reducido.
Lo que debes hacer es usar una imagen mucho mas pequeña, un patron de textura y que se repita por toda la pantalla.
Con una imagen de 50px*50px podrias lograr casi el mismo resultado que con tu imagen de 3600px*3600px :S
Por ejemplo busca patrones en esta pagina
ava7 patterns /// 1820 free seamless background patterns
He descargado recien uno para probar y no pesan ni 10k (debes descargar el de menor resulucion que te ofrecen en cada caso)
y luego en tu css usarlo asi:
{
background-image:url('url de tu imagen');
}
por defecto la imagen se repite horizontalmente y verticalmente