Actually, its doable without having 2 separate wifi-networks that the user needs to keep track of, instead you have 2 wifi-APs that will broadcast the same network name, but both AP's switch between each other so only one AP is active at same time.
First you create a Wifi AP, that is active only off-peak hours.
This Wifi AP, is connected to a captive portal (A) that allows BOTH peak-voucher and nonpeak-voucher.
Then you create a Wifi AP, with the same name that is active only on peak hours.
This Wifi AP, is connected to a captive portal (B) that allows ONLY peak-voucher
(A) and (B) portals needs to have same public and private key. (and of course all other settings need to be identical too)
On the (A) portal, you create 2 rolls, lets say rollid 1 and rollid 2
On the (B) portal, you create only rollid 1
Vouchers from rollid 1 you sell as peak vouchers (expensive)
Vouchers from rollid 2 you sell as nonpeak vouchers (cheap)
On more expensive AP's you can create these as separate VLANs so you still only need one cable to your pfSense box, and then you create 2 "virtual" interfaces on pfSense, that you then tie to your captive portals.
Theres 2 small disadvantages with this option:
1: The user can reuse a used peak-voucher during non-peak time. (But this can be used as a selling point, eg peak voucher gives 1 hour surf at peak times and a additional 1 hour free surf on non-peak)
2: both Peak and non-Peak users gets disconnected and have to relogin when the system switch between peak and non-peak. (This can be seen as a advantage if you want non-peak users to be kicked out when system switches to peak, even if they have time left on their voucher)
(Note: Try this out before starting selling vouchers, so you see that this fit your particular situation)