Yes, that's right. The maximum power output is acheivable at 50% speed, for a moment. Run it there for too long and you'll melt the motor.
Motors have two principle loss mechanisms
a) windage (braking torque due to stirring the air around)
b) \$I^2R\$ losses in the conductors.
There are others, static friction, eddy currents, but windage and I2R are dominant
As the output torque is proportional to current, but the I2R to current squared, running with a high current is inefficient. This is why running at half speed with half the stall current will overheat your motor that has only been designed to dissipate the losses of running at maximum efficiency.
The simplest way to see why efficiency peaks close to the unloaded speed is to plot the losses, and total losses, along with the power output on the same graph as you have posted.
I2R losses are maximum at stall, and fall as inverse square as the current drops.
Windage losses are zero at stall, and rise as the cube of speed.
Plot the sum of those, as a ratio to the power output.
A more conceptual way is to reason thus:
a) When the motor is rotating, it is generating a reverse emf
b) the input voltage must be greater than this to make a current flow
c) only the input voltage that matches the back emf actually produces work, the excess input voltage is wasted as heat in the windings
d) this means that the maximum efficiency, from back emf consideration alone, is 0% at stall, rising linearly to 100% at synchronous speed.
So operating at 50% speed, the maximum possible efficiency will be limited to 50%, and will be less due to other losses.
Unfortunately, we can't operate a synchronous speed, no current will flow, which means zero power output. No-load speed is slightly lower than that, where all the output power goes into windage losses, and a small current flows. As we drop further below synchronous speed, the torque goes up linearly with the current, and the extra I2R losses rise as the square.