Is this in-place merge algorithm efficient or not?
This algorithm has been previously published in literature; for a detailed worst-case runtime analysis, see [1], [2], and [3]. It is referred to as "Symmerge" or "merging by decomposition". When the two subarrays to be merged are both of length $n$, the algorithm runs in worst-case $O(n \log n)$-time and uses $O(\log n)$ space (due to recursion).

If we use this algorithm for mergesort, the overall mergesort recurrence becomes $T(n)=2T(n/2)+O(n\log n)$; using the Extended master theorem, we know $T(n)=O(n \log^2 n)$.

[1]: P.-S. Kim and A. Kutzner, "Stable Minimum Storage Merging by Symmetric Comparisons" http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.102.4612&amp;rep=rep1&amp;type=pdf

[2]: K. Dudzinski and A. Dydek, "On a stable storage merging algorithm". Information Processing Letters 12 (1981) 5–8.

[3]: S. Dvorak and B. Durian, "Merging by Decomposition Revisited."  The Computer Journal, Volume 31, Issue 6, 1988, Pages 553–556, https://doi.org/10.1093/comjnl/31.6.553