How can I create multiple different admin roles with their own capabilities

Yes it’s very easy. You’ll want to use the add_role() function to add your custom roles – https://codex.wordpress.org/Function_Reference/add_role

Then you can use add_cap to add custom capabilities – https://codex.wordpress.org/Function_Reference/add_cap

One important thing to mention is that both add_role and add_cap are saved to the database so they only need to run 1x so it’s good to hook these functions into theme_switch, load-themes.php or if it’s in a plugin using register_activation_hook

There is also another good answer can be found here with an example: Apply custom role capabilities to administrator (without plugin)