Here are a few ideas:
I think that maybe the problem lies in the formulation of the question, and what is an active user. What comes to mind when hearing active user might be more linked to frequency and regularity.
Thus you have 4 kinds of positives: the loyal users with regularity, the loyal users without regularity, the churners, and the new active users.
For loyal users there might be some regularity. I would look at variables like at what cardinality the visits to the gym happen on each day of the week — of the month. E.g. n_monday_usages compared to n_weekly_usagesall_usages etc.
This one is simple and identifies loyal users with regularity.
Your feature of time since last Gym usage might be good for churners.
If I spot samples with regularity (loyal users) I would put them aside from the dataset before going through the next steps.
The overall use of the gym by non active users must follow a law akin to a Poisson process, and thus the time between 2 uses must follow an exponential law.
Fit a poisson distribution to the number of gym uses (first check that variance ~1.5 * mean, else perform a Negative Binomial fit). Look at the goodness of fit. If the fit is good, then an observation you can derive can be "being very above the central tendency" (here you choose whatever performs the best). Or else you go non parametric if you have enough samples and a fat enough tail and use high percentiles. This feature should help you spot intensive users with no regularity.
About the period between 2 gym usages: You can remove samples if the sample used the Gym once or never, else use the average period between 2 uses. Then fit the cdf of an exponential distribution to this data. An observation you can derive could be "being very under the central tendency". If you have enough samples here you go non parametric as well and use the low percentiles. This feature should help you spot new active users.