Multisite – cannot remove specific sub-menu its parent menu. All sub-menus disappear

Ok, I was doing a mistake and glad that I found it! I was using admin_menu hook when it should be admin_init.

So the only change I had to make was:
add_action('admin_init', 'restrict_admin_access_by_role', 999);

https://stackoverflow.com/questions/27137866/what-wordpress-hook-fires-first-admin-init-or-admin-menu

Hope this would help somebody like me as well!