Margaux,
The microflow timer uses the current (anonymous) session to execute a microflow. Because of this, the behavior you describe is correct. The microflow timer is keeping your anonymous sessions alive.
If you set EnableKeepAlive to false, the platform will get rid of anonymous sessions after 10 minutes ( the default timeout ). Or you could set the runtime setting SessionTimeout to a shorter time so that the platform will get rid of anonymous sessions more quickly.
Be aware that SessionTimeout applies to both anonymous and authenticated sessions.
Hope that helps,
Mike