I've done the requisite maths to be able to answer my own question. The answer turned out to be surprisingly simple and amenable to calculation.
Assumptions
Your spacecraft is standing on a small, airless, perfectly spherical planetary body.
Your spacecraft has a variable $I_{sp}$ engine which operates at a constant power $P$.
The thrust force and exhaust velocity are governed by the following equation
$$ P =Fv_e $$
where $F$ is the force (thrust) of your engine and $v_e$ is the variable exhaust velocity. Increasing $v_e$ increases the fuel efficiency, but comes at the cost of thrust. Thrust is inversely proportional to exhaust velocity.
$$ F \quad \alpha \quad \frac{1}{v_e}$$
You want to get to orbit as efficiently as possible. Once you are in orbit, you can take your time with maneuvers, and you can set your $I_{sp}$ to be as efficient as possible. While in suborbital flight, you have no such luxury, as time is not on your side. You must accelerate to orbital velocity $v_o$ as quickly as you can or else you'll crash.
Approach
It is generally agreed (at least in the KSP community) that the best way to get off an airless body is to boost upwards till you've cleared local topography, then boost as hard as you can for the horizon. The orbit should be as low as possible without crashing into terrain. In my perfectly smooth sphere solution, this orbit is placed a negligible distance above the surface.
This makes for a simple vector diagram. After a negligible boost into the air, the spacecraft is gliding over the surface. The total acceleration $a_t$ is separated into a vertical component $a_v$, which is exactly counteracting the acceleration from gravity, $g$, and a horizontal component $a_h$ which is the one contributing to the overall orbital velocity.
$$ a_t = \sqrt{a_h^2 + a_v^2} $$
$$ a_v = g $$
$$ a_h = \sqrt{a_t^2-g^2}$$
The total acceleration $a_t$ can be derived from the thrust of our engine and the mass of the craft $m_t$
$$a_t = \frac{F}{m_t} = \frac{P}{v_e m_t}$$
and the time taken to reach orbital velocity $v_o$ is:
$$ t = \frac{v_o}{\sqrt{a_t^2-g^2}} = \frac{v_o}{\sqrt{(\frac{P}{v_e m_t})^2-g^2}}$$
At this point, you can sort of see what the problem is. At one extreme, the acceleration is very high and so therefore most of it goes towards reaching orbital velocity. This is an efficient use of propellant. However the force required to make this acceleration is so high that the engine needs to operate very inefficiently, nullifying your efficiency gains. At the other extreme, even though the engine is running efficiently, the thrust is so small that most of it is spent fighting gravity, and the residual horizontal acceleration occurs at a snails pace. It takes a very long time to accelerate to orbital velocity, and in the meantime you've actually wasted most of your fuel just fighting gravity. There is a hard limit where $a_t$ is equal to or less than $g$, and in that case, your spacecraft just isn't going anywhere. It can't even lift itself off the surface.
Solution
We are minimising mass loss from propellant, not delta-v. With a variable $I_{sp}$ engine, the total delta-v budget is not so precisely defined. So first, we need to find the mass loss rate $ \frac{dm}{dt} $as a function of exhaust velocity. A rocket's thrust is defined by
$$F = \frac{dm}{dt} v_e$$
and based on our first equation $P =Fv_e$
$$ \frac{dm}{dt} = \frac{P}{v_e^2} $$
and so the mass of propellant required to reach orbital velocity as a function of $v_e$ is:
$$ m =t \frac{dm}{dt} = \frac{P v_o}{v_e^2 \sqrt{(\frac{P}{v_e m_t})^2-g^2}}$$
This graph clearly illustrates the behaviour of the function and the location of the minimum. The 'max exhaust velocity' is $\frac{P}{m_t g}$, and if you plug that into the above equation you'll see why. (it makes the denominator zero)
If we do some quick calculus (left as an exercise to the reader), and make the naughty assumption that the overall mass $m_t$ doesn't change, we find the exhaust velocity that provides the minimum mass loss is
$$ v_e(min) = \frac{P}{\sqrt{2} m_t g} $$
which is $\frac{1}{\sqrt{2}}$ times the value of the maximum exhaust velocity.
When plugging this exhaust velocity back into the acceleration vector diagram, we find that the optimal angle is $45^o$.
It's also important to note, that while the above optimum was found assuming no mass loss to orbit, it also holds for any instantaneous velocity - at any point in time, given a certain mass, it will give you the most efficient exhaust velocity.
Accounting for mass loss
Since the optimum ascent profile seems to be to maintain an angle of 45 degrees while gliding along the surface (effectively accelerating forward with acceleration $g$), any decrease in mass will result in an increase in exhaust velocity, as $M_t v_e$ will be kept constant. This results in a mercifully easy DE to solve.
$$ \frac{dm}{dt} = \frac{-P}{v_e^2}$$
and $$ m v_e = \frac{P}{\sqrt{2}g} $$
whose solution for $m$ is
$$m = \frac{Pm_0}{2g^2m_0t+P}$$ where $m_0$ is the initial mass at takeoff
and $$v_e = \sqrt{2}gt+\frac{P}{\sqrt{2}gm_0} $$
Which looks like this when plotted over time (arbitrary units):
Summary
If you're playing KSP and wondering how to ascend most efficiently, burn upwards to clear local topography, then point your nose at 45 degrees and try to adjust your $I_{sp}$ at a constant rate so that you are neither gaining nor losing altitude. You want to be following the red line in the graph above.
And if you're playing real life, either find yourself a very tiny asteroid, or don't use a VASIMR engine, as ~5 N of thrust is pretty abysmal.