Usually, when cpu maxes out, the process that triggers a failover kicks in because the traffic management module (tmm) is too busy processing traffic that it doesn't get the cpu cycles needed to update it's heartbeats, until the system watchdog decides to kill in order to force a failover. This is what happens in most cases.
If you are using big irules, you might be able to see if there is any opportunity to optimize. Also make sure that all four CPU cores are being maxxed (and a lot of traffic is not being pinned to one CPU core due to irules performing operations that cause CMP to be demoted) -- Load your qkview into https://ihealth.f5.com to see if it mentions any CMP demotion under the diagnostics tab.
Also, look at your configuration and see if you can be served by plain FastL4 profiles for some virtual servers -- basically any virtuals where you don't need to do any irule processing or for instance persistence on any high-level protocols than Layer 4 will benefit from being converted to fastL4