There are number of things that you could check that might be behind the slow instance apart from active trigger campaigns, such as: a lot of synced CRM fields (you can remove fields from the sync that are no longer required and have become obsolete), too many campaigns with priority overridden to high/medium would cause the ones with low priority to delay a lot, a lot of people in the DB (consider cleaning up the DB), a lot of assets in approved format listening for updates, try unapproving and archiving obsolete assets, deactivating engagement programs that are completed instead of leaving them in an on position even though no one will process through them in casts, etc.
Also, when you say there aren't any unnecessary trigger campaigns, it doesn't mean that the ones that you have active aren't too much for the instance to handle. I'd advise you to convert as many active trigger campaigns as possible to batch campaigns (e.g., some low priority updates can do equally well with them done on a nightly basis). Instead of trying to do a lot of things immediately as soon as the action happens leading to a sluggish Marketo instance and critical updates getting delayed, it’s better to prioritize things and convert the lower priority ones to batches. Additionally, instead of using wait steps in regular campaigns, see if you can use executable campaigns instead. FWIW, executable campaigns are processed in a separate queue than the trigger/batch campaigns.
Lastly, this recent article has got great tips on keeping the Marketo instance clean and snappy: