A quick update: I changed two of the coil packs around today (thanks to abydielsgli's thread). The one over cylinder 2 was absolutely covered in what looked like grit and muck. I brushed it off as best I could (though largely pointless I expect given the connection is inside?) and swapped it with #3, and lo and behold, the misfire code is now for cylinder 3. I think we have a culprit.
Any thoughts on if the O2 sensor code is a spurious reading because of the misfire? I checked the sensor today and the post cat (sensor 2 bank 2) reading did adjust between ~0.4-0.5V, so I don't think it's broken. And the fault code hasn't resurfaced since I cleared the ECU codes..