If only that specific entry needs special care, maybe
ordered-by user is an overkill, especially if that means that you need to take care of ordering other entries. In a similar situation we used trickery with user-defined types (see the corresponding section in
confd_types manpage) and made sure that the specific entry was ordered always as the last.
If you think
order-by user is fine, you may really need to register some transaction hook callbacks - those that may change the ordering, which is probably
move_after. In that callback you would use
maapi_move_ordered to shuffle entries, if needed. The problem with this is that such shuffling might recursively invoke your callback again; if you implement this part carefully, it might work, maybe.
Another variant - provide your list as a “virtual view”, i.e transformed view of a real CDB-stored list. This way you may have complete control over how list entries are stored (or how they are presented to the user, depends on what is your main concern). It would require more coding then the other variants, but it might be considerably safer.