Well that was odd... the package I uploaded to the CWS contained the 3.11.1 code in the main user.js file, yet the filename was still set to 3.11. Meanwhile both manifest.json and bootstrap.user.js were referencing the main file with the expected 3.11.1 filename, which is something I normally only change once I've changed the filename of the main file. So I'm really not sure how the main filename ended up being wrong in the uploaded package.
Anyway, I've uploaded another package which should now work as planned - note that to get around the "you can't upload a new package with the same version number, you muppet" problem (nice of the CWS to sanity check the version number for you, be even nicer if it'd also check that the files referenced in your manifest are present in the package...) it'll show up as 18.104.22.168 in CWS, but the script itself still calls itself 3.11.1 as that hasn't changed. The .crx packed version checks out OK in Canary, so it looks like all the filename references tie up correctly this time.