AlexanderBunt I don't have any useful Arduino experience. In general you'll want to arrange for something which can, on a regular schedule, just read all of the relevant ADC channels and store the values. Then once you've grabbed them, do whatever checking you want.
Controlled timing can be more important than "fast". If you just check things as fast as you can in a loop, then any conditional code execution will make some iterations of the loop take more or less time than other iterations which might cause you difficulty timing things. Depending on how you implement things.
AlexanderBunt Just a whole lot of if else statements won't work I think (far too slow) and makes a true mess of the code of course.
This is being compiled down to assembly to run on a microcontroller, if the task fundamentally requires a bunch of "if else statements" then you're going to end up with a bunch of compares and conditional jumps one way or the other.
The standards for what constitutes messy firmware differ, IMO, from the standards for high level code running on luxuriously overpowered desktop/server processors which just need to respond fast enough for a human.