The public.system_users.created_at field contains the date/time when the user was first added to the server. I don't know what the public.system_users.activated_at field is for.
I haven't seen anywhere that the date for changes of licensing types is stored and currently I'm sure it is up to you to keep track of that if you need it.
FYI: I don't think that the activated_at wouldn't work in a multiple site environment since the licenses are tracked on a per-site basis (users table) and the system_users table stores information that will identify the user regardless of which site they are on.
Can i join
to bring licensing details like user,created date?
No. There isn't anything to tie background tasks to users unless you go through some other tables or views.
The naming convention Tableau uses is simple. If you want to get user info then look for fields in other tables that have "user_id". That field would joint to the "id" field in _users. If you spend a few minutes looking at the various tables you'll pick up on it quickly. For example, to join _users to _system_users you would use the join _users.system_user_id = _system_users.id
Try the readonly user for the database.
If all you really want is when a user was created and you have only one site:
SELECT name, created_at
If you have multiple sites:
SELECT s.name, su.name, u.created_at
FROM system_users su
JOIN users u ON u.system_user_id = su.id
JOIN sites s ON u.site_id = s.id
If you always create a user as an licensed user, this will also answer your first question of when a user was licensed. If you bring in users as unlicensed and then license them later, this will NOT tell you the license date.