Yes you're right, the number of max online engines can't exceed the number of CPU.
No need for syb_blocking_pool + syb_default_pool <= #max online engines for syb_blocking_pool consume very few CPU resource. It's can be set to the value bewteen 1 to #max online engines without considering what syb_default_pool is.
But <user defined pool> + syb_default_pool <= #max online engines.