Hi Mike,
glad I could help.
A "good execution rate" always depends on the project. 20 milliseconds might be too long (controlling RPM of a motor or detecting pushbutton presses or counting pulses from a flowmeter) or way too short (temperature control).
It's the responsibility of the system engineer/designer to find the appropriate timing.
As for Modbus, we typically use twice the rate of the task which is using the data provided by the Modbus driver.
Best regards
Jaroslav