I would say that with numcases the brace is a bit too low. Nevertheless, I fully agree that the braces with aligned and cases are much too large. Here's what I often do as a remedy:
The point is that amsmath's cases uses an \arraystretch of 1.2, which doesn't work well with TeX's standard brace sizes. I prefer using 1.1 instead of 1.2; of course this means that there's a bit less vertical space between the cases. Maybe you'll deem the braces still too large, but in my opinion this is a good compromise. (The distance to the brace tips appears a bit large only because a, x and u don't have ascenders and descenders.)
Best Answer
You can write the condition just after the cases environment