There are two thread pools that Rules execute in. Cron triggered Rules run from one thread pool and event triggered Rules trigger from a different thread pool.
When I see “only the time (cron) triggers seem to work” I immediately suspect that you have used up the event triggered pool. See Why have my Rules stopped running? Why Thread::sleep is a bad idea.
By default, only 5 event triggered Rules can run at the same time. If you have long running Rules or Rules that never return then no other Rules can run.