So there won't be true consistent last login then? I will need to be able to identify haven't logged in for over 120 days however, our servers are rebooted every month for updates. So the best option would be save the sys.dm_exec_sessions contents into physical table for historical information?
No. If want to guarantee that you're not going to miss anything, either setup Extended Events to capture logins or setup up a server side trace to do the same thing. Don't forget that you'll either need to restart either one after a bounce of the SQL Service or add it to the startup parameters.
As a bit of a sidebar, yes, you could do all of this using the SQL Server Error Log but there's no way that I'd enable logging of logins there because it'll seriously clog up the works when you're manually trying to find something in the error log.
I'd also get out of the habit of having discrete logins even if they're Active Directory logins. Use Active Directory Groups instead. Of course, the exception (there's almost always an exception) to that rule is Service Logins for applications.