Timer is way better.
OPU gets called quite a few times / second.
I use a timer that gets called once a second to check the speed and that's enough.
Umm.. OPU is called everytime a player updates the server with their status? Detection time is not so important, the important thing is to catch a cheater.