Is this launchd plist broken or is it just me?
It was as I expected. The version in the question doesn't re-launch the app, because /usr/bin/open doesn't return an error status when the app crashes. I wasn't able to find a better way than hard-coding the path to the executable, so I'm now using the following.

&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
        &lt;key&gt;KeepAlive&lt;/key&gt;
        &lt;dict&gt;
                &lt;key&gt;Crashed&lt;/key&gt;
                &lt;true/&gt;
                &lt;key&gt;SuccessfulExit&lt;/key&gt;
                &lt;false/&gt;
        &lt;/dict&gt;
        &lt;key&gt;Label&lt;/key&gt;
        &lt;string&gt;com.getsync.bittorrentsync&lt;/string&gt;
        &lt;key&gt;Program&lt;/key&gt;
        &lt;string&gt;/Applications/BitTorrent Sync.app/Contents/MacOS/BitTorrent Sync&lt;/string&gt;
        &lt;key&gt;RunAtLoad&lt;/key&gt;
        &lt;true/&gt;
&lt;/dict&gt;
&lt;/plist&gt;


I've verified that this does successfully re-launch the app if it crashes.

A more easily downloadable version of this can be found at https://gist.github.com/atomicbird/ff2de46a594cdb5c8e69