In case any poor soul runs in to something similar, I’ve found the problem:
define('WP_DEBUG', false);
Running debug mode (as I do on all dev sites), was throwing a warning, but it was being returned in the ‘admin-ajax.php’ which was preventing the images from showing/uploading and returning the appropriate values etc.
I cannot believe the answer to debugging was to stop debugging. Jesus.
I’m away to file a bug report now.