i use(d) mwan3 as well.
as soon as i upgraded to this nss build, it stopped working.
im not going to hand hold too much through this but.. if you just need a fallback connection like i did you can snap together a quick script that loops and pings via ping -I
out each interface... once one goes down, adjust your route metrics
and set whatever connection is still alive to have a higher metric.
this is how i was able to overcome mwan3 not working.
php was a good choice for me to do this, although it would be much cleaner to do this in vanilla bash which i am not as fluent in as i am php.
here are the lines that are most relevant:
$command='timeout '.$timeout.' ping -c 1 -w '.$timeout.' -W '.$timeout.' -I '.$interface.' '.$ip.' >/dev/null 2>&1';
to test if an interface is up. obviously cycle this on both (or more...) of your interfaces, until at least one successful ping.
$command='ip route del default via '.$ip.' dev '.$interface;
to clear your default routes. remove the default routes for all your interfaces.
$command='ip route add default via '.$ip.' dev '.$interface.' proto static metric '.$metric;
to reinsert a default route with a set metric. you probably want to add both interfaces, even the failed one with a higher metric (20, 30, etc... vs 10 on the working one).
the test ips i use are basically google, opendns and cloudflares dns servers.
$testips=array('8.8.8.8','208.67.222.222','1.1.1.1');
...and no, as far as i can tell there is no way to modify a routes metric without removing + adding them again. there is someone's util on github but its obviously not available for openwrt without going through all the trouble of compiling it etc.