By doing some error tracking, you'll find that
TypeError: 'QasmQobj' object is not iterable`
was raised from
IBMQJobManagerInvalidStateError: Pulse schedules found, but the backend does not support pulse schedules.
So your code was ok, it's just that the IBMQ Bogota backend doesn't support pulse schedules. Right now it appears that the only IBMQ QPU that does support pulse schedules is IBMQ Armonk:
>>> provider = IBMQ.get_provider(hub='ibm-q', group='open', project='main')
>>> for backend in provider.backends():
... config = backend.configuration()
... if config.open_pulse:
... print(config.backend_name)
ibmq_armonk
IBMQ Armonk is a single-qubit device, so the qubit_lists
and any other qubit-related parts of your code will have to be modified.
Good luck!