Hey Robert,
do you mean Easel? Did you set it up according to this?
Normally if a g-code program sends out M3 and your router/dust collector on your IoT relay switches on as per your wiring on ‘tool-enable’ pin 15, it should be shut off at the end by M5 (or better said by M2 which should include M5).
Does your router/dust collector switch on with M3, and off with M5, when NO g-code program is running, just by entering these commands into the MDI field of the Onefinity Controller?