A couple of comments:
Just because a scheduled event has a status of Running does not mean that it is actually still running. If something stopped the event from completing, such as you stopping the application, the records in the Scheduled Events will remain in the Running status.
Running scheduled events every 2 minutes can quickly build up to a lot of history records under scheduled events. I normally add a button and workflow to delete all the old records periodically to keep the number of history records manageable
If you think that the events are not completing and are spinning a thread, your would normally be able to see this in application responsiveness and CPU utilization on the server, but you can easily add some log events to your microflow to log exacly when the scheduled event is actually firing. This will confirm whether something is indeed stopping it running as scheduled.