Running Pi-Hole and a VPN on your router might not be a good idea.
For Pi-Hole the reason is that it runs all it’s components as the root account. One of them includes the PHP webserver for the dashboard.
On a more complete Linux system like raspbian, confining it to a container helps somewhat by limiting what can it do. But I’m not sure if you can run a container environment on OpenWRT. Also, routers are often quite week, so it depends on your model whether pihole would fit in to RAM at all, with all your filter lists.
For a VPN the reason is rather just the performance.
On one hand the VPN may be slow, and on the other hand it could slow down the router while someone is using it, which would affect all traffic that needs to be filtered or routed (to a different network, including the internet) from your home network.
I’m not a pro, so take these with a grain of salt, and verify if these are actually true.
Matrix is newer, afaik it is used by more foss projects for communication than xmpp, and it has a more widely accepted standards base for things compared to xmpp, where I have often heard that it has multiple different implementations for things like voice calling and encryption which are incompatible with each other. Don’t take my word on it, but I hope that at least by reading this those interested can search for the issues and whether they are valid.
But then, what do you mean by xmpp being easier to host? I’m not familiar with XMPP hosting.
Matrix requires a home server, and a database server. If you want voice calls it also needs webrtc voice infra.