Handle special cases to get restrict critical path

* Dead-end now backtrack annotate blue
* Propagate RED only if one or more incoming edge is RED

Assumes each blocking yields to an alternate path, otherwise the algorithm
fails to recover the critical path.

For example, nanosleep must have a timer object line to switch control to util
wake-up.