Why is oxygen and CO2 measured in pressure instead of mmoles/L like other ions?
As you suspected, hemoglobin is the reason why O$_2$ and CO$_2$ in blood are expressed as a pressure (mmHg) and not a concentration. Most of the oxygen in blood is bound to hemoglobin; the concentration of free oxygen in plasma is low because oxygen does not dissolve well in water (which is of course the reason why hemoglobin exists in the first place).

When the oxygen content of blood is given as a pressure, it refers to the partial pressure that a gas (air) must have in order to be in equilibrium with the blood. This might seem a bit roundabout, but it captures the effects of both solubility and hemoglobin. In essence, this pressure describes how much oxygen the blood can release, which is the critical parameter for oxygenation of tissues.

The molar concentration of free O$_2$ in plasma is proportional to the partial pressure over the liquid, a fact known as Henry's law. The proportionality constant is the solubility of oxygen in the liquid, about 1.3 10$^{-6}$ M / mmHg for plasma. So at 100mmHg, the plasma O$_2$ concentration is about 130 $\mu$M. For comparison, the O$_2$ concentration in an ideal gas at 100 mmHg is 9 mM, or 70-fold higher.

See for example this book chapter for more information.