I solved the problem, and will try to explain what I did here just in case someone else runs into the same thing. I had the same issue with a DNN2.12 portal, a DNN3 Portal, and a DNN4 portal.
In summary, the server time, time zones, and portal time zones were out of sync. I had just moved the portals from the Pacific Time Zone, to Central, but I did not consider the time zones when I moved the portals to the new server. Just changing the time zones on the portal settings or users did not solve the problem for me either.
To solve the problem, I disabled Users On Line on each portal, and I also stopped the scheduler (In DNN4 the scheduler is automatically on/ off for purge-user-on-line when you change the setting under Host... cool!). I then did an application restart to make sure everything was reset.
I then checked the time zones to make sure they were all correct, matching the time zone on the server. I changed the Host and admin user time zones, and for the DNN3 and DNN4 portals, I made sure the Portal Time zone was set to match the server system time zone. There is no time zone setting in DNN2. (I also had to correct the actual time setting in windows since it was off by two hours also).
I also needed to purge the scheduler history in the database, so I could start fresh. I deleted the appropriate history records from the Scheduler History table.
It may not have been necessary, but before enabling again, I did another application restart. I then enabled Use- OnLine in the Host Settings, and made sure the Purge User On Line schedulers were enabled, and did another application restart. Within one minute, the scheduler ran and Users were showing as on line again.
I will try changing the admin user time zone to something else later, thinking this may (should) not matter.
My lesson learned.... pay attention to the time zone setting on the server and the application.