Actually, "creating an associated vertex which defines this custom data type" sounds like an excellent idea! If an attribute is important enough to define an index on, it probably deserves to be a first class citizen in the graph.
Answers to the other questions:
- Not for the MixedIndex; it does not support Object type keys (https://docs.janusgraph.org/index-backend/search-predicates/#data-type-support). A CompositeIndex index on an Object type key is possible, but it would still be an ugly approach because the index would compare entire objects based on the implemented "equals" method of the custom attribute (which in your case would compare one specific attribute).
- I tried to test this in an example, but got stuck (for now) on the limited documentation given in https://docs.janusgraph.org/advanced-topics/serializer/. Otherwise, there is no reason why these cardinalities would not be supported. If you are still interested, we can try and get this working (and add it to the documentation).