Your current solution is not bad at all if I understand it right. It is normal that when you have additional fields in the join table you need to map the join table as an association class. Call it a "many-to-many between A and B through C". Its how you would do it in plain OOP, too.
Now you want to add a field to the association. You can not add it to class A or B. You need to create a class in-between (C, the association class).
That results in:
A onetomany C
C manytoone A
B onetomany C
C manytoone B
I agree, however, that the order is something special, since it is implicitly represented by the order of the elements in the collection. You dont need an association class in plain OOP for that and Doctrine should be able to handle that transparently, too. I agree there, its just not yet possible.
Right now the only way to order a collection-valued association is in a DQL query or in PHP, I guess you know that already.
Additionally, we want to add something like: @OrderBy("foo ASC, bar DESC") that you can apply on a collection-valued association so that the collection is always ordered, whether you use DQL or find()/findAll()/lazy loading/ ...
However, this does not yet cover the "persistence" of the order in the relational database which is the more complicated part.
I dont understand your proposed temporary solution. Can you show some (peudo)code that shows how you imagine that?