Ok thoughts; could you do something like this:
void loop(){
function1();
function2();
function1();
function3();
function4();
}
And check it more than once per loop of the main program loop?
Basically 3 of the 4 functions can within reason be done whenever, they are non time critical, whereas one relies on being done at a specific time interval to provide accurate measurements.
Or the alternative is to have a dT that will change, but I read somewhere that is bad practice?