@Gijs actually I solved my problem before seeing this , anyway it is very interesting.
In particular, my problem was solved by removing
if not bt.isscanning():
bt.start_scan(-1) # start scanning with no timeout
print('Trying to establish connection with Nord')
connection = bt.connect('ac5fea133f19')
I found out these commands were not needed and they broke my code.