Take crate2 of crate1 before opening crate1 is allowed

No, there’s not a much easier way. Trying to hybridize supporters and containers is always a pain.

You’ve created 4 things here: Crate4, Crate4’s interior (which is a part of Crate4), Crate4’s top (which is a thing that’s completely independent of Crate4 and just happens to be named “Crate4’s top”), and Crate5.

The room description will mention both Crate4 and Crate4’s top since they’re separate things.

One can put things on Crate4’s top despite Crate5 covering it.

Since crate4 begins as unopenable, open crate4 gives “It isn’t something you can open” rather than referring to being unable to open it because it’s covered.

If you take crate5 and then put crate5 on crate4's top one can still then open crate4.

Getting this right is actually kind of advanced. Two possibilities are having separate container and supporter things for each crate and swapping them in and out for each other as needed or making crate a kind of object that has a container part and a supporter part. Both approaches would involve customizing basically every action that deals with a container or supporter, and thus requires a lot of familiarity with how the existing actions work and what the corresponding rules are. Also, having containers as parts of a thing can have weird interactions with light.

If you keep at this problem, you will learn a whole heck of a lot about Inform 7. If you don’t want to invest a lot of time and effort learning more details about Inform 7 right now and would prefer to get on with your current game, you might want to change the concept to something not involving hybridizing supporters and containers.