Do you have some way to reproduce this?
Checking whether steamID is set on a timer is not the proper way to reconnect. This would run you into problems if SteamUser is currently attempting to connect but isn't yet logged on. You only need to call logOn() when your bot starts up, and if the error event is emitted.