I've done cyclic graphs in a closure table before. It's much more expensive to delete edges but it can be done.
First of all you can forget about path-length. What's the path-length of a cycle? Infinity? Drop that column.
When you remove an edge (parent, child) from the graph you have to consider the possibility that there are alternate paths from parent's ancestors to child's children. So before deleting the edge save all of the parent's ancestor's children - these are the potential alternate paths. Then after you've deleted the edge re-add parent's ancestor's children to the closure table, excluding duplicate rows.