Conflict between tabu and tabularx, when using siunitx

tabularx is redefining \arraybackslash (and it even tells in the docu that this is a hack:

\arraybackslash \\ hack.
                 \def\arraybackslash{\let\\\@arraycr}

tabu doesn't like this definition. It expect \arraybackslash to have the meaning from array.sty. So now \\ gives errors. You can give \arraybackslash locally the standard definition back:

 \begingroup
 \def\arraybackslash{\let\\\tabularnewline}
 \begin{longtabu}
  ....
 \end{longtabu}
 \endgroup

I'm not sure what tabu is doing here (I didn't have it installed prior to this) but it looks like something is locally defining \\ so it no longer ends the table row. using \tabularnewline instead seems to make your example work.