Почему сначала выполняется JavaScript, а только потом отображается HTML?
Ну вот хром, судя по всему, решил заняться "оптимизациями" и опять пойти против шерсти, то есть стандартов.
Не удивляйтесь, хрому такое не впервой.
Вначале парсится html страница. В ходе данного процесса, если встречается тег  парсинг странниц продолжается. Если необходимо выполнить какой то js после того как все загрузится(к примеру надо взаимодействовать с элементами html), то данный код добавляется в callback ивента ready.<script>
window.onload =  function() {    
    alert( 'DOM loaded' );
};
</script>
Более подробно можно почитать тут