Change is_front_page() to is_page() to display ‘hero’ on entire site?

is_active_sidebar() does not refer to a specific widget. It means if there is any widgets in your sidebar.

According to codex:

Any sidebar that contains widgets will return TRUE, whereas any
sidebar that does not contain any widgets will return FALSE.

Also, is_page() only works when the query has been run. It doesn’t work at any points before that, you might want to check that out too. However since you are using is_front_page() I assume the query has already been run.