I think the problem you are having is that a standard if/else has the outputs coming out the two sides, making it wide:
You can get one of the exits to come out of the bottom in two ways:
1) using elseif
2) using an implicit else
Option 1 is more logical and works with "!pragma useVerticalIf on", but I couldn't find any syntax to label the first "no" path.
Here is the best I could do using 'endif' and 'useVerticalIf' :
And here is my effort using implicit elses:
I hope this gives some ideas.
It does seem to be a lot of messing around for something that you'd hope the tool would do automatically for you.
And it would be good if @plantuml supported "(cond1-false-text) elseif (condition2) (cond2-true-text)" rather than just "elseif (condition2) (cond2-true-text)".