Exhaust is a condition, create it and add it to the player that used your action, check for it at the entry, and voila.
If you want to have a separate exhaust condition, add it using example that is already in your engine.
Alternatively, you could expose/wrap player->setNextAction(OTSYS_TIME()...