You’d have to be more specific what those calculations are. It might be possible that you only need to run them at 60 Hz (because, at the end of the day, you can’t update the screen in response to any calculations faster than that) but that you access the ioHub data store for more data samples rather than the current one.
e.g. if you are testing for a velocity threshold and will change the display if it exceeds some value, you only need to do this calculation at 60 Hz, as there is no point in running the calculation faster than you can give feedback on it. But you would need to access the previous, say, 20 ms or so of data to get a good estimate of velocity in a moving window. So your code would run syncronously with the screen, but it could utilise data collected asynchronously by ioHub.