It is not clear to me how the captive portal can determine the voucher is no longer in use (as distinct from 'the user is taking a snack break').
The only ways that CP recognizes that a voucher isn't online anymore is:
1.) The voucher runs into a timeout (Idle Timeout or Hard Timeout).
2.) You disconnect the voucher manually by hand using the GUI (Diagnostics -> Captive Portal)
3.) The user clicks the "logout" window.
If you like that users will be disconnected when taking a break for lunch or something else set the idle timeout to 10 minutes.
If you want to make sure that everybody gets disconnected one (or several) times a day choose hard timeout 180 minutes.