In OQAM modulation, why does the up-sampling process be seperated into two parts?
In the end, it counts that the transmit signal of a multicarrier-OQAM system equals

$$x(t)=\sum_k\sum_m j^{k+m}d_{km} g(t-k\frac{T}{2})\exp(j2\pi\frac{mt}{T})$$

where $d_{km}$ is the real-valued data, $k$ is the symbol index and $m$ is the subcarrier index. 

However you achieve this transmit signal structure, your implementation is fine. Though, it is mostly done as you describe for convenience reasons. For sure, you can perform the upsampling by $M$ points and delay one part of the QAM symbols by $M/2$ instead of first upsampling by two and then delaying one part by one sample. However, for implementation reasons, e.g. delaying by $M/2$ samples requires more memory than delaying by only one sample. 

So, the answer is that it's not an algorithmic requirement, but more a convenient way of generating the OQAM multicarrier signal.