After some analysis I decided to implemented your original idea with small modification. Tokens will be set automatically when no tokens are set (your original condition) and this was the last card the player added to his deck, thus completed it (now is ready to play).
Your original idea would set the tokens with the first card which was added to the deck (if it had a keyword) and then it would disable itself (the auto tokens would not trigger). My modification ensures that tokens are set when the deck is completed. The system has much more information about the deck, so it can choose token counters much better.
Implemented in
https://netvor.sk/trac/arcomage/changeset/841