Is it valid to have the following combined join and fork nodes in a UML activity diagram or is it wrong?
I searched online and in some UML books but I cannot find a clear answer or a similar example.
The idea is to have two actions (1 and 2) that need to be completed and then synchronised before the start of actions 3 and 4.
Should I just introduce a sync action between a join and a fork node to be on the safe side?
Yes, that is valid.
In the UML specifications version 2.5.1 you'll find on page 391
The functionality of a JoinNode and a ForkNode can be combined by using the same node symbol, as illustrated in Figure 15.31. This notation maps to a model containing a JoinNode with all the incoming ActivityEdges shown in the diagram and one outgoing ActivityEdge to a ForkNode that has all the outgoing ActivityEdges shown in the diagram.