Thinking out loud here.
Soft cap / Hard cap
(not as complicated as the NBA though)
Example:
Cap 100m (numbers are only for example)
Soft cap would be 100m to 120m. A team could be over the 100m but under 120m from FA 1 until camp(before). This would give teams in cap trouble time to deal players to get under 100m and also allow them to use all their draft picks as to not hurt the team.
Hard cap. A team could never go over the 120m hard cap. Offers that put them over this get rejected by the system. Same with the 100m from camp to FA1 of the following season. System would drop players and reject offers to keep them under this cap.
Which players for the system to get rid off:
This is the tricky part. It's easy to just get rid of the top salaries to get a team under the cap but that too can contribute to hurting the team. Maybe keep the top 5 default rated players and then start dishing players by salary. Maybe only allow x number of max contracts per team?
Draft Pick Penalty:
Taking draft picks away from a team would only further destroy the team for the next owner. Which in rare cases might be a bad GM's intention to attempt to ruin a team and forfeit draft picks so other teams(or their multi team) can move up in the draft. So i think this penalty should be avoided in public leagues.