Locale case sensititvity on AWS instance
Oh, I am blind.

Rather than delete this embarrassment, I will post this mea culpa for anyone else that may experience a similar brain fart.

I had subconsciously typed the directories in html/ using the common POSIX/ISO standard without realising it, so html\en_US\. Of course, this works on OS X because the OS is case insensitive by default, and does not on Linux, because it is case sensitive. Renaming to all lowercase solved it.  

As for the CP rewrites, it was simply that Craft was not picking up that rewrite was correctly enabled. Simply adding omitScriptNameInUrls fixed that immediately.