More info - tried adding DNSexit as an alternative provider and it doesn't work either (cached IP is 0.0.0.0 and 'save and force update' takes a long time before timing out as it does with no-ip).
Pertinent logs are:
Aug 24 16:22:25 php-fpm10146: /services_dyndns.php: MONITOR: WAN_PPPOE is down, omitting from routing group WAN1First
Aug 24 16:22:25 php-fpm10146: /services_dyndns.php: MONITOR: WAN_PPPOE is down, omitting from routing group WAN2First
Aug 24 16:22:25 php-fpm10146: /services_dyndns.php: MONITOR: WAN_PPPOE is down, omitting from routing group WANBalanced
Aug 24 16:22:25 php-fpm10146: /services_dyndns.php: MONITOR: WAN_PPPOE is down, omitting from routing group WAN1First
Aug 24 16:22:25 php-fpm10146: /services_dyndns.php: MONITOR: WAN_PPPOE is down, omitting from routing group WAN2First
Aug 24 16:22:25 php-fpm10146: /services_dyndns.php: MONITOR: WAN_PPPOE is down, omitting from routing group WANBalanced
...which led me to check the WAN connection. Here's where it gets strange - on the Status Dashboard, WAN has an IP address of 86.147.247.126 whereas in system->routing it's listed as having 172.16.12.35 - the dashboard address is the one in the right ballpark (the cached IP from before I upgraded to 2.2.4 was 86.147.125.146, and that's what i'd expect from a BT Infinity PPPoE connection) also the background colour to the description field in system-routing was grey for the WAN line, so I went in and disabled gateway monitoring on that line and the background went red (as i'd expect for a live connection) but the IP addresses didn't change either there or in the Status Dashboard, also the 'save and force update' didn't change it's failure state, so I went back in and re-edited to enable gateway monitoring, and the background is red still but no other change.
I think this points to Dynamic DNS failing as being a symptom of the WAN connection having some sort of abberation with respect to PPPoE IP versus some sort of observed IP on the 172.16 range?