Exterior derivative: notation and behaviour
The wedge symbol
Consider the following:

Notice that the product_rule algorithm does the jobs correctly, but the output could be improved by adding the wedge symbol after the $\mathrm{d}{f}$, i.e.
$$\mathrm{d}{f} {\color{red} \wedge} V\wedge g\wedge W+f \mathrm{d}\left(V\wedge g\wedge W\right)$$
Nonetheless, at this stage the commutativity is treated correctly, e.g. see the output of the sort_product algorithm.
Substitution of a exterior differential
Consider now the following:

Notice that the lack of the wedge product symbol does not allow sort_product to behave correctly, since it misunderstand the role of $W$.
Trying to bypass the last problem
It occurs to me that the wedge could be added by hand, i.e. including the wedge even when multiplying by a 0-form, but it introduces misbehaviours with the unwrap and collect_factors algorithms, or even with further manipulations

Notice that the term with $f \mathrm{d}{f}$ will misbehave as in the previous cases.

Just to let you know that this is being worked on; most of it comes from the fact that product_rule acting on a product of a degree=0 form f and something else will incorrectly write the product of df and the rest as a normal product, not a wedge product.