The element constructor looks buggy to me as it stores
coefficients which are not in the base ring
sage: a = s([[2],[1]])
sage: a.coefficients()[0].parent()
Integer Ring
The division that is happening is (Integer 1) / (Integer 2)
which is indeed impossible in the Integer Ring. This
should have been (1 in QQ['t']) / (2 in QQ['t']) which is
possible.
The culprit is the function _from_dict which has a coerce
argument which is set to False by default. It is called when
you perform s([[2],[1]]) bt without changing this default.
The difference with FractionField(R) is that it is a field.
In that case another code path is used to perform the division.
Vincent