The timeout event has the draback that it is not garanteed to execute. The value signalling is, but you will have to be aware of loopback, when events will continue to trigger events in a deadlock (never stopping). Create a sequence diagram (UML) to get an overview with lots of value signals. Think of a recursive function that also needs to end sometime.
Regards,
André (CLA, CLED)