The simplest smooth curve that avoids all rational points is probably the parabola
$$y = \frac{b}{a}x + \lambda x(a-x)$$
where $\lambda$ is any irrational number.
Now, the set of points in $\mathbb{R}^2$ that are a rational distance from both $o$ and $p$ is countable (because any two rationals determine at most two such points); but the set of irrational $\lambda$ is uncountable. Moreover, as $\lambda$ varies, the resulting parabolas are all disjoint (apart from their end-points $o$ and $p$). So there must exist (uncountably many) $\lambda$ for which the above parabola satisfies your conditions. Also, as you suspect, $\lambda$ can be chosen as close to zero as you like.
Updated In fact we can take any one-parameter family of curves ${C_{\lambda}}$ from $o$ to $p$ which are disjoint except at $o$ and $p$. The set of all rational points, together with the set of points that are a rational distance from both $o$ and $p$, is countable, so in any open interval $I$ there exists $\lambda \in I$ such that ${C_{\lambda}}$ satisfies OP's conditions (a) and (b).

