It is in your formula: IF(OR(J4="",I4=J4),"" Per your expectations that part is wrong, because when equal you consider it early.
this seems to work as you want it to do
=IF(J4="","",IF(0>((MOD(J4-I4,1)>=0,5)-MOD(J4-I4,1)),"LATE","EARLY"))
It is in your formula: IF(OR(J4="",I4=J4),"" Per your expectations that part is wrong, because when equal you consider it early.
this seems to work as you want it to do
=IF(J4="","",IF(0>((MOD(J4-I4,1)>=0,5)-MOD(J4-I4,1)),"LATE","EARLY"))