@startuml
[*]->starting
starting -> reset_counts : message
starting -> late_data : Timer Exrired
reset_counts -> reset_counts : Message
reset_counts -> late_data : Timer Expired
late_data -> reset_counts : SWCongestData
late_data -> late_data : Timer Expired [g1]
late_data -> late_cycle : Timer Expired [!g1]
late_cycle -> reset_counts : Message
late_cycle -> late_data : Timer Expired [g1]
late_data -> resynchronize : Timer Expired [!g1]
resynchronize -> starting
@enduml
It formats all the states horizontally in one line.
If the starting state was moved up, and the resynchronize state was moved down the output would be able to be understood and you would not have as many crossed lines.