This script, msdb110_upgrade.sql is a known troublemaker. I have seen more than one case where this script can cause the upgrade to fail.
As I understand it, you have been able to recover the situation by uninstalling and reinstalling, and you don't have this situation on a server right now. I know it is possible to work around this situation by fiddling with startup trace flags, but I have only seen it, and never tried it myself, so I abstain from giving advice that could give matters worse.
I do have an idea what have caused this. If you are to run this CU on more instances, run sp_configure 'user options'. Preferably both config_value and run_value should be 0. If it is non-zero, take the value(s) and run SELECT value & 2, this comes back as 2 - this is bad news. You need to run sp_configure to change the value so that the next-to-least significant bit is not set. When this bit is set, all processes connect to the instance will have IMPLICIT_TRANSACTIONS enabled by default.
The purpose code that is quoted as the troublemaker in the errorlog is to check whether implicit transactions is on and in such case save that in an extended property before turning off implicit transactions. The problem, though, is that the SELECT statement to retrieve the value of the extended property will start an implicit transaction. And the transaction is then still active it runs sp_dbcmptlevel - which does not agree to being executed in a transaction.
I need to add the disclaimer that I am not 100% sure that the output in the errorlog is accurate - it could be another batch in the script that fails for a different reason. I know at least two more reasons why this script can fail, although the pattern in this case does not really match any of those.