Controller, it is a possibility, but again, it seems unlikely with quality hardware, which I have. Also, note that I had this running as a production/test system for almost a year, with no issues.
As part of my testing, in order to test data integrity in the test environment, I calculated the checksums for each file, appended to a log. Months later I tested that same nearly 5TB of against their checksums with no errors. This should have been an unnecessary test due to ZFS but I made the verification regardless.
Everything that I've read says that any and all errors are unacceptable during badblocks testing, let alone getting back to the following SMART long tests afterwards. However, I will let badblocks run its course, then a SMART long test, and will report back.
It absolutely could be user error, hence my posting here.