My setup is
billion 8800nl in bridge mode as modem
pfsense NUC unit as firewall/router
asus ac68 as wireless access point and a switch
I also have the samknows unit in my living room as another switch (also does samknows testing).
All in one units are conveniant and overall lower cost, but they are inferior otherwise.
I also feel out of all the open source solutions pfsense is the one most well developed, ddwrt seems to have a 100 different forks, openwrt I have never used but I think requires decent knowledge of linux to use properly, tomato usb has a nice interface but has some annoying flaws and very limited hardware support, asuswrt is ok but as I found out prior to my move to pfsense it has its own issues and again will only work on asus hardware.
Its not just software either, the hardware side of things is pretty low spec when you look at the cost outlay, my pfsense unit has many multiples more of computing power vs my ac68, and likewise 16x the ram as well. The NUC unit runs at under 45C (might hit high 40s in summer) passively cooled vs over 80C (in summer) for the ac68 passively cooled.
Regarding ipv6, surprise surprise asus implentation is problematic on sky (likely also on BT), it will work, but in its out of the box code it will not preserve prefixes on a disconnection, as again surprise surprise it is not RFC compliant. The fork of asuswrt developed by merlin has aimed to fix this but only was partially fixed. Also the ipv6 code in asuswrt for a while was very volatile as asus seemed to be experimenting on that part of the code.
To actually get ipv6 to function on pfsense, its just adjusting one or two settings, that on its own it will work for all devices on the lan, but a few additional settings are needed to preserve prefixes and also to allocate an ipv6 address to the router itself.
On asuswrt its a couple of settings to enable ipv6, this will also allocate an ipv6 to the router, however due to bad code design, if you adjust ipv6 settings on asuswrt the entire router has to be rebooted which is pretty annoying.