When using the Twine 2.x application to develop a SugarCube 2 based project I suggest using either the Play or Publish to File option to check it's visual layout, because SugarCube's DEBUG view automatically injects extra HTML elements into generated output which are likely to disrupt the layout.
eg. The Test option is causing the first line in your "Ex.1 Output" example.
There are a number of ways to control the structural layout of the generated HTML elements, which you use depends on situation.
A. You can use one of the nobr releated features (the Config.passages.nobr setting; the nobr passage tag; or the <<nobr>> macro.) to suppress the automatically added HTML <br> elements.
This method would generally be combined with the manual inserting of HTML elements to generate the layout you want.
B. You can use Line Continuation markup to supress individual <br> elements.
This method can also be used to remove the leading white-space that results from the indentation of your code within a Passage.
C. You can use the <<silently>> macro to suppress all visual output of logic only sections of code.
D. Some combination of all of the above.
In your specific use-case I use the Config setting to suppress all line-breaks in your project, and then use a combination of Line Continuation markup to remove leading white-space and manual added HTML elements to layout the condenced output. I would also use the <<silently>> macro as needed.
Ex 1. The lazy HTML way, by just adding <br> elements.
<<silently>>
<<if $someBoolean>>
<<set $variable to "some value">>
<<else>>
<<set $variable to "some other value">>
<</if>>
<</silently>>
A very long paragraph....
<br><br>
A different very long paragraph....
<br><br>
[[Markup Link 1|Target Passage Name]]<br>
[[Markup Link 2|Target Passage Name]]<br>
[[Markup Link 3|Target Passage Name]]<br>
[[Markup Link 4|Target Passage Name]]
Ex 2. A less lazy HTML way, by adding paragraph <p> elements as well as <br> elements.
<<silently>>
<<if $someBoolean>>
<<set $variable to "some value">>
<<else>>
<<set $variable to "some other value">>
<</if>>
<</silently>>
<p>A very long paragraph....</p>
<p>A different very long paragraph....</p>
[[Markup Link 1|Target Passage Name]]<br>
[[Markup Link 1|Target Passage Name]]<br>
[[Markup Link 1|Target Passage Name]]<br>
[[Markup Link 1|Target Passage Name]]
note: CSS can be used to control the sized of the marigns that appear before & after each paragraph.
Ex 3. An even less lazy HTML way, by adding an un-ordered list <ul> element structure as well as the paragraph <p> elements.
<<silently>>
<<if $someBoolean>>
<<set $variable to "some value">>
<<else>>
<<set $variable to "some other value">>
<</if>>
<</silently>>
<p>A very long paragraph....</p>
<p>A different very long paragraph....</p>
<ul>
<li>[[Markup Link 1|Target Passage Name]]</li>
<li>[[Markup Link 2|Target Passage Name]]</li>
<li>[[Markup Link 3|Target Passage Name]]</li>
<li>[[Markup Link 4|Target Passage Name]]</li>
</ul>
note: CSS can be used to control sytling of the un-ordered list as well as the sized of the marigns that appear before & after each paragraph.
The following CSS will remove the bullet points and left blank area from the above un-ordered, it needs to be placed within your projects Story Stylesheet area.
.passage ul {
list-style: none;
margin-left: 0;
padding-left: 0;
}