There is a great simple framework that can ease a lot the deployment and management of Jails called BastilleBSD. You can install it with pkg install bastille.
Happy FreeBSD user here. I personally use a Protectli FW1 with FreeBSD 12.1 and PF (Kernel recompiled with ALTQ support for QoS) and it works very well! I tried to move to OpenBSD to get the latest PF features/syntax but unfortunately the interfaces are dropping packets and no one on the OpenBSD mailing list have been able to help me. Unfortunately for me I'm not a programmer so I'm not able to contribute/fix it myself but I have to rely on the community/devs. I have reverted back to FreeBSD 12.1 and still being super happy with it!