For wired, I would recommend keeping things simple and avoid doing dynamic VLAN assignment, and instead relying on dACL to enforce access. If you really want to keep guest on a separate VLAN, configure guest VLAN on the switchport as a starting VLAN. Then,
1. If machine or/and user authentication succeeds, assign user to the secured production VLAN. This is regardless of whether it is using static IP or DHCP
2. For true guest, the 802.1x authentication would fail and the user will failover to MAB and can be redirected to guest portal. Once logged in, guest stays on same VLAN with internet only access.
For wireless, since you will have two separate SSIDs for internal and guest, they would be mapped to separate VLANs already so there is nothing you need to do additionally.