Best Cache Configuration for WordPress Membership Site with Dynamic Nav Menu


I'm running a WordPress membership site with a dynamic navigation menu (By role). I understand that the [Cache Logged-in Users] option exists, but it seems really inefficient to cache multiple posts and pages for 150+ users (Caching by role would be much better). Is there any way to address this?

ESI seems perfect for this situation, but it does not appear to be an option, and I'll tell you why. I am using Beaver Builder and Beaver Themer. I saved the menu module, and inserted it as a shortcode and attempted to use the ESI parameters, but it broke hard.

Appreciate any feedback you all may have! Thanks in advance!