This question turns out to include a far better solution. I have reproduced the code from the cited solution relevant to answering this question here:
message = receive_message();
// Solution
int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
int saved_point = rl_point;
char *saved_line = rl_copy_text(0, rl_end);
rl_save_prompt();
rl_replace_line("", 0);
rl_redisplay();
printf(message);
rl_restore_prompt();
rl_replace_line(saved_line, 0);
rl_point = saved_point;
rl_redisplay();
free(saved_line);
For completeness' sake, the input thread is cleared of cursor saving and becomes simply:
message = readline("Prompt > ");
I don't know how I didn't see before posting my question.