Here is a link to the bill Ted Cruz is pushing to prevent the transfer of the IANA function to ICANN.
It instructs NTIA not to let the IANA contract lapse. It has one flaw, what if IANA says "no thanks, we're not interested in renewing?"
In theory, the NTIA can then rebid the contract and find someone else to perform the "IANA function." But who cares? The recognized IANA will go with ICANN. Everyone will point to that. No one will give a crap about NTIA does, including NTIA.
This requires a longer blog post, but it is an illustration of how some things are based on a mutually assumed set of circumstances. The IANA contract worked, and ICANN worked, because it provided a way to resove a bunch of thorny political issues without everything falling apart. Those issues are resolved. Done now.