Sembra quasi che la direttiva 'width:100%' la interpreti come '100% dell'area del blocco padre'...
Esatto, e` proprio cosi` che deve essere interpretato.
Il blocco <html> si riferisce a tutta la finestra del browser.

Invece il secondo blocco (quello che deve occupare il "resto dello spazio"), non deve avere larghezza 100%. Dovrebbe funzionare senza definire la larghezza.

Puoi anche provare a definire
left:0; right:0;
ma non tutti i browser interpretano correttamente una tale coppia di dichiarazioni.