Use uma ordem diferente dos blocos Host . O Host * corresponde a tudo e ssh_config não sobrescreve entradas já armazenadas:
Host hostname0
Hostname foo
Host hostname1
Hostname bar
Port 0
ProxyCommand ssh -W %h:%p hostname0
Host hostname2
User username2
Hostname bat
Port 1
ProxyCommand ssh -W %h:%p hostname1
Host *
User username0
Mover o Host * para o final fará com que funcione novamente.