First off a wait for 1 ns won't synthesize to any logic, so no it's not actually synthesizable (I beleive Xilinx ignores it compelely, which is probably why it works).
You other question doesn't show the code (half_adder.vhd) causing the Error (10533) you are seeing, so we can only guess what you wrote that is causing a problem.
FYI, A good rule to follow is to avoid WAIT statements in synthesizable code. This is especially true if you are using it to delay signals to move them off the clock edges so simulation is "easier' to look at.
Anything that can be synthesized using a WAIT statement is easily coded in one of the standard templates that can be easily found and are usually in the coding style guides that the FPGA vendors publish.