This might be not what you want to hear, but it’s very possible the cause of this is in fact the upgrade to Jelly Bean (4.1.2).
Android is a notoriously resource-hungry and bloated OS, and with every new version the system specs keep increasing. It could be that the vendor screwed something up with the OS update, or Google screwed something up, or one of the ‘bundled’ Java services decides to have a garbage collector party, and so on…
With Android it’s the garbage collector that is your biggest enemy - the garbage collector can at any and all times kick into gear and start ‘cleaning up memory’ - this can be enacted through something as stupid as a weather display app through Google’s own Play Store services which have continuous intervals at which they do ‘store updates’. There is absolutely no way to turn off these ‘services’ from doing what they want to do while an app is running.
These ‘garbage collector stalls’ mess up the audio/video sync in RetroArch, and this causes the bad performance hiccups since after the first GC cleanup there is bound to be a further trashing later on, and then again later on, ad it goes on and on. General games and multimedia video apps I believe just buffer ahead and don’t really have the same kind of issues as emulators that are reliant on relatively stable video/audio sync. Realtime audio apps also perform very badly on Android so maybe that usecase is slightly comparable to the ones we face with emulators (and basically anything that revolves around zero frameskip and a more-or-less consistent refresh rate for audio/video sync).
If you had great runtime performance before with Ice Cream Sandwich then that is what I would recommend going back to. You simply can’t take it to the bank that an OS upgrade in Android land will be necessarily an ‘improvement’ on any host device - it’s entirely dependent on how much crap Google bolted onto this latest update AND what your vendor added to the mix as well. Add to that ever-increasing RAM requirements, ever-increasing CPU requirements and it’s generally a safe bet that you should stick to the Android version that came with your device as it will be generally most optimal for your given device.
AFAIK that is exactly what Sony decided on with Xperia Play when forgoing to upgrade to Android 4.0 and/or Jelly Bean. And there have been other vendors that have chosen their own cut-off points after which they provide no more US upgrades.
These and various other reasons is why I have a very bad impression of Android these days as these kind of huge performance issues simply do not happen on iOS and/or QNX (Blackberry).