Or you can make a queue with just 201 and 202, and then after a given timeout move any remaining calls to a queue with 201, 202, 203 and 204.
Penalties may be tricky to work with - if an agent was not available, say, because they forgot to log off, or their phone broke, Asterisk would keep trying them over and over and would not try the second layer.
Your approach would work unless you thought there would ever be a reason for calls to go direct to Tier 2. If that ever was the case I would make two queues. On the Tier 1 queue have retry set to No Retry and have the failover destination be Tier 2. This approach should not require commercial modules.
The problem with auto pause is that there is no automatic way to unpause. You have to force the users to remember to unpause themselves. There is also no visible notice to the users that they were paused unless you make a BLF for it.
Yes, but only helpful if they leave their screen of BLF buttons on the one that has the pause BLF. That is the specific issue one of my customers has with their agents. They have no desire to pay more for a phone with more visible BLF, so the users are always switching to a different screen to park or transfer, etc.