The US Senate has blocked a critical defence bill, citing concerns over Iran conflict and US-Israel military ties, highlighting deep political divisions and shifting public opinion.