You didn't mention how far along you were in your code ideas, so here's a very high level.
You'd have to disable ULib bans.
Pseudo logic
On a ban function,
if bantime > 0 then
write sql <gamemode> ban table = banned_player, time
else
write sql perm ban table = banned_player, 0
end
on connect hook
On connect, check player against gamemode banlist and perm ban list.