You're right - it's not a combinatorial loop since there is a delay in the loop.
The error occurs during type propagation. The problem is that every block in the loop is set to infer its type, which means that DSPB will attempt to set each block to the minimum bit width required to not lose any precision. However since you have a loop in there, the precision required is actually infinite. DSPB doesn't detect this directly, instead its propagation widens inputs iteratively until they stabilise. With a loop like this, it would iterate infinitely. DSPB tries to detect this infinite propagation and when it does, it gives this somewhat cryptic error message.
Anyway to resolve the problem for this design, you should manually set the bit width on either of the 2 adders or the delay in between them. (You could do it on the gain blocks or their preceding delays, but then you would have to do it twice).