> before=\empty,

\empty is not even required. The problem with your solution (setting 'before=' i.e. empty) is that there is also no whitespace before a subsection which doesn't start on a new page.

Any better ideas?