I have used pfSense. I find it better suited if you want to build a low power machine to use it, or be like me and run it in a virtual machine on a noisy Dell R710!
It certainly has all the features you could ever want, but it has a steeper learning curve than most router software. I technically don't use pfSense, but instead OPNsense, as I seem to have less issues with it in a virtualized instance, but both do the same thing.
My network layout is like this:
BT Smart Hub (bridge mode as modem) -> R710 (Proxmox) -> WAN port passthrough to OPNsense VM, LAN port passthrough to small 5 port switch and Asus RTN66U (which is as a switch, wifi off) -> Ubiquiti UAP-AC-PRO for wifi.
I have minimal issues with this setup and the expandability is everything I would want. My only recommendations for hardware, as it is *BSD, is STAY AWAY FROM REALTEK HARDWARE! Seriously, I bought a 2 port pci card to passthrough to the VM, and it only partly worked, and crashed most of the time. Use Intel hardware if possible (unless cpu, it doesn't really matter there)