Eu usaria ligação de dispositivo, o que significa que você está criando um novo dispositivo virtual para o qual você atribui as configurações de rede (por exemplo, endereço IP, máscara etc.) e escraviza as interfaces ethernet e wifi nessa interface.
Algo como:
$ sudo modprobe bonding
$ sudo ifconfig bond0 192.168.0.1 netmask 255.255.0.0
$ sudo ifenslave bond0 eth0 wlan0
Isso tem a vantagem de cobrir todos os seus cenários de 1 a 5 com uma exceção: você tem apenas 1 endereço IP. Se isso for um problema, você sempre poderá criar um "alias" (por exemplo, bond0: 0) e fornecer um endereço IP diferente para esse. Então você sempre teria ambos os endereços IP acessíveis, mesmo se apenas 1 interface estivesse ativa.
Mais detalhes podem ser encontrados online. Por exemplo: link