If Forretress isn't vital to your team, you may wish to consider switching it with a bulky attacking Scizor, and use a different Pokémon for laying down hazards.
In my opinion, I prefer any trapper set either to move very fast or be able to take a hard hit, because you never know if your opponent is going to decide to try and tank you or try to outright kill your trapper instead of switching out.
It just depends on your team style. If you want a tank, Snorlax is an obvious choice, but as you mentioned, you're going to have to accommodate extra weaknesses on your team to do that. The exact same thing would go for Weavile.