How can we find the number of pairs of intersecting ranges on a circular number line?
This is solvable in $O(n \log n)$ time, too, by considering the complement of the intervals that wrap around and using a suitable data structure.
There are two types of intervals that can appear on a cycle:

Intervals that do not wrap around: e.g., $[0.3,0.5]$ does not wrap around.  In general, this includes all intervals of the form $[a,b]$ with $0\le a \le b \le 1$.

Intervals that wrap around: e.g., $[0.8,0.1]$ wraps around; it is equivalent to $[0.8,1.1]$ or $[0.8,1] \cup [0,0.1]$.  In general, this includes all intervals of the form $[b,a]$ with $0\le a &lt; b \le 1$; each such interval is equivalent to $[b,1] \cup [0,a]$.


Let $A$ denote the set of intervals that do not wrap around, and $B$ the set of intervals that do wrap around.  Also, let $\overline{B}$ denote the complements of the intervals in $B$, i.e., $\overline{B} = \{\overline{b} \mid b \in B\}$.  For instance, the interval $[0.8,0.1]$ wraps around; its complement is $(0.1,0.8)$, which does not wrap around. It is easier to think about intervals that do not wrap around, and this decomposition  will help us to deal only with intervals that do not wrap around.
Now, we will separately count the number of overlaps between (1) an interval in $A$ and an interval in $A$;
(2) an interval in $A$ and an interval in $B$;
(3) an interval in $B$ and an interval in $A$; and
(4) an interval in $B$ and an interval in $B$.
(1) can be counted with your sweepline algorithm, as we don't need to deal with wraparound.  (4) can also be counted in the same way, as two intervals overlap iff their complements overlap.  I will show below how to count (2); case (3) will then follow by symmetry.  This covers all the cases, so it suffices to count up these four cases and sum them up.
Note that intervals $a \in A, b\in B$ overlap iff $a$ is not a subset of $\overline{b}$.  So, it suffices to count the number of pairs $a \in A, \overline{b}\in \overline{B}$ where $a$ is a subset of $\overline{b}$; then you can subtract that from $|A| \cdot |B|$.
To do that, you can use the data structure in Data structure for interval subset queries.  Store all the intervals $\overline{B}$ in the data structure.  Then, for each $a \in A$, count the number of intervals in $\overline{B}$ that $a$ is a subset of.  This can be done in $O(\log n)$ time per query interval $a$, for a total time of $O(n \log n)$.
Therefore, you can count each of the four cases in $O(n \log n)$ time, and thus compute the overall sum in $O(n \log n)$ time as well.  I think.  I encourage you to check my reasoning to make sure I haven't made any mistakes.