I don't think it "can return null due to the way it is stored in Active Directory". It can return "0" if the property has not yet been replicated to other DCs. The replication interval from the time the property is updated is 14 days +/- a random percentage of 5 days. https://learn.microsoft.com/en-us/windows/win32/adschema/a-lastlogontimestamp
For a new user that would mean that only the DC that managed the logon would have that information for at least two weeks. For accurate information you have to query each DC in the users' domain and retain the most recent date.
@Sedat SALMAN is correct about the need to specify the LastLogonDate in the Get-ADUser cmdlet. The default set of 10 properties returned by that cmdlet are:
- DistinguishedName
- Enabled
- GivenName
- Name
- ObjectClass
- ObjectGUID
- SamAccountName
- SID
- Surname
- UserPrincipalName