tl;dr minimizing latency, particularly in establishing a connection, is an important design objective.
It's also in plenty of OS kernels already, such as solaris and linux, and can be written as userspace libraries.
1: http://www.cisco.com/c/en/us/td/docs/ios/12_4t/12_4t15/htsct...
> it sits at the IP layer so all routers need to do is pass it as IP
Erm... no. The vast majority of consumer electronics are built up from NAT. You are NOT getting past your Verizon/Comcast router with IP alone.
It's getting interpreted as TCP, and then getting NATted over to something else. As far as i can tell, UDP has a similar process.
But its a major problem with SCTP and consumer routers. Have you ever tried to send an SCTP connection across your typical consumer Verizon router?
... on IPv4. On IPv6 you don't have to worry about NAT, and IPv6 usage is growing: the percentage of Google traffic conducted over IPv6 has doubled in the past year and is significantly higher on weekends, which means consumers are driving a lot of that traffic. It's now over 7% on weekends and growing by about one percentage point every 3-4 months. That seems to me like a sufficiently large pool of potential testers.
The NAT problem is really finally going away. What we need to be worrying about is dumb firewalls, but I'd bet that there will be just as many consumer routers that fail to make any of their firewall rules apply to IPv6 as there will be routers that can pass TCP over IPv6 but not arbitrary protocols.
There's a wicked chicken-and-egg problem deploying SCTP: a popular service would be a good reason to push vendors, enterprise firewall admins, etc. to support SCTP but it'd be financial suicide to build a general service which depends on it now.