We all knew 1.13 was going to be a technical update and we knew that 1.14 was going to be the aquatic update, but why was 1.13 taking so long? I think I might have an answer, since 1.14 and 1.13 are the same now. I think Mojang have been planning the alone technical update to have a nice companion (1.14), but didn`t know if it was a smart/right idea. (not including all the bugs in the several last snapshots)
It would also give more hype to the community since we now have two updates in one. I think this was a very smart move by Mojang
The simple reality is that some technical (side) projects had to get done first before work could be started or continued on 1.14 content. One example of this is the changes to the world generation code that populates biomes (1.14 is replacing the two ocean biomes we have now with something like 8 new oceanic biome types), and there just was no way to add those in the previous regime.
These technical side projects probably have application to stuff beyond and way beyond the 1.14 update, too, so they may be handling those considerations as well even though they aren't saying anything about it currently (most likely because they're just setting up placeholders to be tied into later when they start focusing on those projects).
In addition to the above, there's also the issue that some of these projects may be the result of kicking the problems down the road so they didn't have to deal with it back then. The big problem with this way of thinking is that eventually you're going to catch up to the problem you were trying to avoid and you've given it much more time to fester (small problem becomes big problem). Some of it could've been planned (such a project could have been far too big for the timeframe back then, so instead of rushing a quick fix they schedule a proper fix later and just suffer through the problem until then), but a lot of it likely stems from the developers' overall desire to give the user what they want when they want it; developers are pretty famous for "MacGuyvering" solutions that allow Thing A to be added even though the system doesn't actually properly support it.