Below are 3 options, I don't recommend option 1 or 2 but option 3 may be harder to implement as it changes the way you think about categorizing cases.
Option 1: create a custom status field and a VF page to display your new field (you can't hide the status field on layouts). This prevents creating record type specific layouts (or requires ALOT of VF logic to try to re-create the same functionality). This takes power away from the admins which is never good.
Option 2: Since you're creating a custom VF page, you can create a page that manages the dependencies for you while still using the standard field. This not only has the same issue as option 1, but now your admins can't configure the dependencies. They will need to go through a developer to manage them.
Option 3: (by far the best one) Re architect the way you classify cases so that record type plays a primary role. Split all of the custom fields by record type (using support processes) so that only categories for the specified record type show up. Then, build a field dependency for category to sub-category. Build another dependency for type. Lastly, set up some validation rules to prevent users from selecting an invalid status based on category/sub-category.