Jelly, 10 7 bytes
¬;/SпL
Try it online! or verify all test cases.
How it works
¬;/SпL Main link. Input: A (list)
¬ Negate all integers in A. This replaces them with zeroes.
п Cumulative while loop.
S Condition: Compute the sum of all lists in A.
If the sum is an integer, it will be zero (hence falsy).
;/ Body: Concatenate all lists in A.
L Count the number of iterations.
Update
While writing this answer, I noticed that Jelly behaves rather weirdly for ragged lists, because I calculated the depth of a list as the incremented minimum of depths of its items.
This has been addressed in the latest version, so the following code (6 bytes) would work now.
¬SSпL
This sums the rows of the array instead of concatenating them.