Thanks for playing!
Yeah I would get the infinite loop maybe once per game. Randomizing the defenders every 9 seconds was meant to help counteract that. I tried to implement a timer that would keep track of the last time the ball hit a defender and then add force some random direction if it had been too long but I couldn't get it to work quite right. It is something I plan to fix at some point though.