Add everyone to you workflow that is greater than 30 days with your specified filter. Then as the first step in the workflow you could add a remove from workflow step with a constraint to remove anyone that is older than 90 days. If they are less than 90 days you would do nothing.
Also, before each email send you could also do a check to see if an activity had been logged in the last 7 days.