Der Systemdienst, der die Zeit hochzählt und den Benutzer abmeldet wenn die Zeit um ist ist ne gute idee (ich würde zwar den Benutzer nur abmelden, nicht zwingend runterfahren, aber das ist ja Geschmackssache
).
Der Elaubte / Verbrauchte Zeit pro UserAccount kannst Du ja den Dienst in einer Datenbank verwalten lassen (z.b. Embedded Firebird).