in_key overwrites the string and can not exceed the string length. It's also a internal wait, I assume it can not draw_x till the internal wait is terminated. But I don't understand your issue. I'll put it on my testing list for later today, if you haven't solved it by then.
EDIT- You code works fine... As I believed, it draw text as soon as you hit (enter) the termination key. Due to the loop, only a TEXT* object can show the active entry of the inkey. My test code
Code:
STRING* input_me="#228";
///////////////////////////////
function main()
{
vec_set(screen_size,vector(800,400,0));
vec_set(screen_color,vector(50,1,1)); // dark blue
vec_set(sky_color,vector(50,1,1)); // dark blue
video_window(NULL,NULL,0,"My New Game");
inkey(input_me);
while(1)
{
draw_text(input_me,50,50,COLOR_WHITE);
wait(1);
}