Ten rules, one transaction
A booking locks the student row, then the faculty row, always in that order, and checks notice, overlaps, limits, closures, and the rest before it writes. The order is deliberate: it cannot deadlock, and it gives one winner under contention.
Trade-off: a little more work per booking, in exchange for a rule set that cannot half-apply. An eight-student race for one slot produces exactly one booking.