How, in practice, could instantaneous signalling violate causality? I know that instantaneous signalling can result in different observers not agreeing on the order of events, but how can that result in causality violation in practice? In other words, if one had two devices that could communicate instantaneously in their own reference frame how could it be set up to violate causality?
 A: A very simple example would be the following:
Pair up device A and B for instantaneous communication. Keep Device A with you and send device B on a journey at a speed close to $c$ (e.g. $v=\frac{\sqrt{3}}{2}c$), programmed to repeat any message back to you.
World line of A: $x(t) = 0$, world line of B: $x(t) = vt$
If, at an event $(0, T_0)$, you send a message to device B, it will receive it at $(vT_0, T_0)$. To determine which event is simultaneous to B at your location, we need to enter B's frame of reference via Lorentz transformation:
$$
x\rightarrow x' = \gamma (x-vt),\qquad t\rightarrow t'= \gamma(t-\frac{v}{c^2}x)
$$
$\gamma=\frac{1}{\sqrt{1-\frac{v^2}{c^2}}}$ is $2$ in our case and the event where B receives the message is $(0, 2(T_0 - \frac{v^2}{c^2}T_0))' = (0, \frac{T_0}{2})'$, so the time in B's frame of reference is $T_0'=\frac{T_0}{2}$.
The motion of A relative to B is $x_A'(t') = -vt'$, so, if B instantaneously replies, the message will be sent to $x_A'(T_0') = -v\frac{T_0}{2}$ in B's reference frame. This event $(-v\frac{T_0}{2}, \frac{T_0}{2})'$ then translates to
$$
\left(\gamma\left(-v\frac{T_0}{2}+v\frac{T_0}{2}\right), \gamma\left(\frac{T_0}{2} + \frac{v}{c^2}\cdot \left(-v\frac{T_0}{2}\right)\right)\right) = \left(0, \frac{T_0}{4}\right),
$$
which clearly happens before $(0, T_0)$, since $T_0>0$.
A: Yes, it would violate causality  because of the following reasons.
(1) "instantaneous" is a reference-depending notion. A pair of events are instantaneous in a reference frame if and only if they are spacelike separated.
(2) Using a chain of spacelike segments you can connect an event  $q$ on a future oriented timelike curve $\gamma$ (your worldline) with a point with an event $p$ on the same $\gamma$, in the past of $q$.
In other words, with this chain of events,  you can communicate with your-self in your own past. This could generate causal paradoxes even in the absence of closed or almost closed timelike worldlines. 
What I wrote is independent on the notion of synchronization you adopt and only  relies on the causal structure of the spacetime, which is independent from the synchronization procedure you choose. The synchronization "à la Enstein" (which produces Lorentz transformations) is partially conventional because it uses the value of $c$ on an open path. Conversely, the causal structure can be constructed using only the experimental fact that the speed of light is constant, $c$, when measured along closed paths at rest in an inertial reference frame.  
A: 
if one had two devices that could communicate instantaneously [...] 

Two (or several) devices that communicate instantaneously with each other (or at least nearly instantaneously among each other, in comparison with their communications with other devices),
i.e. devices which find zero ping durations between each other (or who determine at least that their ping durations between each other were much shorter than their ping durations with respect to other devices),
do therefore have a very specific geometric relation to each other: they are co-located
(or they are at least much closer to each other than to other devices; they are "practically co-located", "as good as co-located").
They took part in the same events together. Therefore they will have no difficulty to agree on the sequence in which either of them took part in these events. Any "violation" or "contradiction" concerning this sequence does not obtain.
A: Imagine you are standing next to an evil person you is trying to shoot your friend, who is also standing still a ways away. You will tell your friend to duck when the evil person shoots his gun. Then in your frame, your telling your friend to duck and his ducking occur at the same time. 
In a boosted frame, these events will not be simultaneous. By boosting the appropriate way, you can make it so that your friend ducks (because of your message telling him to duck) before you have told him to duck in the first place. Here the "effect" happens before the "cause", which violates causality.
