Integer Division Loops
Haskell, 227 203 bytes

17 bytes saved thanks to Οurous



(%)=div
u x|odd x=x%2+1|1&gt;0=x%2
[0,b]!l=[b]!l
[b,0]!l=[b]!l
t!l|elem t l=[dropWhile(/=t)l]
t@[a,b]!l|q&lt;-l++[t]=[a%2,u a+b]!q++[u b+a,b%2]!q
f x|q&lt;-[x%2,u x]![[x]]=[a|(a,b)&lt;-zip q[0..],notElem a$take b q]


Try it online!