I think an option to not subscribe to used addresses would make sense.
yes, they are, but any of them may receive transactions in future.
Eventually I managed to send out the money from the old wallet.
I tried to partially synchronize the wallet form 0 to 10000, then from 10000 to 11000, from 11000 to 12000, etc, and noticed that somewhere between 16000 and 16500 addresses an exception happened:
Exception in thread Thread-12:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.7/dist-packages/electrum/synchronizer.py", line 53, in run
self.run_interface()
File "/usr/local/lib/python2.7/dist-packages/electrum/synchronizer.py", line 160, in run_interface
self.wallet.receive_history_callback(addr, hist)
File "/usr/local/lib/python2.7/dist-packages/electrum/wallet.py", line 755, in receive_history_callback
self.remove_transaction(tx_hash, height)
File "/usr/local/lib/python2.7/dist-packages/electrum/wallet.py", line 739, in remove_transaction
self.txi.pop(tx_hash)
(the line numbers might not match yours since I was experimenting with the sources locally)
So I added a "return" to the beginning of the remove_transaction function in wallet.py (so that this function doesn't do anything and doesn't raise an exception) and successfully synchronized the wallet and sent out funds from it. I think this problem is solved for me until I upgrade to the next version of Electrum