My way of determining sleep time isn't too complicated so probably has errors in it.
I note whenever a player has been inactive for 6-8 hours. I then assume they are sleeping and I also make the assumption they sleep for 8 hours. So I note whatever time that 8 hours would be (local to my time).
So if it is 10a my time and I see a player has been inactive for 6 hours. I write a note for 12p for that player.
My play style is to minimize risks for myself and my attacks. I rarely launch an attack if I don't have all the information I need, so if I need to make an attack where I am fuzzy on the defensive capabilities of the player, I minimize the risk by launching during the sleep window. My pausing does hurt me sometimes diplomatically with allies who sometimes don't trust that I am not moving my force and also hurts me as it sometimes gives time for my opponents to reposition themselves.
"If we don't know what we are doing, the enemy certainly can't anticipate our future actions." - Colonel Goodhead