Fixed. The packMP3 error message says "synching failure", which means there's too much garbage data (more than 64K) after the last valid frame. Luckily, it also tells us how long the valid data is so we can simply truncate the MP3 data to this length and retry.
Code:
(0.04%) Possible MP3 found at position 2197, length 5403167
Too much garbage data at the end, retry with new length 398106
Best match: 398106 bytes, recompressed to 334933 bytes
(7.41%) Possible MP3 found at position 400303, length 5005061
Too much garbage data at the end, retry with new length 1481143
Best match: 1481143 bytes, recompressed to 1270472 bytes
(34.81%) Possible MP3 found at position 1881446, length 3523918
Too much garbage data at the end, retry with new length 1563167
Best match: 1563167 bytes, recompressed to 1337363 bytes
(63.73%) Possible MP3 found at position 3444613, length 1960751
Too much garbage data at the end, retry with new length 355266
Best match: 355266 bytes, recompressed to 316578 bytes
(70.30%) Possible MP3 found at position 3799879, length 1605485
Too much garbage data at the end, retry with new length 572604
Best match: 572604 bytes, recompressed to 493659 bytes
(80.89%) Possible MP3 found at position 4372483, length 1032881
Too much garbage data at the end, retry with new length 217861
Best match: 217861 bytes, recompressed to 189701 bytes
(84.92%) Possible MP3 found at position 4590344, length 815020
Best match: 815020 bytes, recompressed to 708294 bytes
New size: 4653307 instead of 5405364
Done.
Time: 5 second(s), 242 millisecond(s)
Recompressed streams: 7/7
MP3 streams: 7/7
Recompression is OK, too, I also found and fixed two nasty bugs introduced in the refactoring with the commit. Your file can't be processed by packMP3 (stops with "synching failure" error), but now Precomp can handle it