As an alternative, you could use the MAC address and send it to a RADIUS server, which would register this as a new account and put it in the RADIUS database. But it sounds like your setup already works.
I came with another alternative. In user profiles I put the following script in the "script" menu under "On Login" section:
:local "hotspot_user" $user;
:if ("$[/ip hotspot user get [find name=$"hotspot_user"] limit-bytes-total]" < "200") do={ /ip hotspot user remove $user }
/ip hotspot user add name="$user" limit-bytes-total=1073741824 limit-uptime=01:00:00 server=hotspot1 profile=trialUser mac-address="$[/ip hotspot active get [find user=$"hotspot_user"] mac-address]"
:if ("$[/ip hotspot active get [find user=$"hotspot_user"] limit-bytes-total]" < "200") do={ /ip hotspot host remove [find mac-address="$[/ip hotspot active get [find user=$"hotspot_user"] mac-address]"]}
This creates and stores the new trial "Users". This solved the relogin after reboot
I don't know it's a good way. What do you say?