Job control lets you put it in the background and get it back in foreground again:
time ( set -m; sleep 10 & echo $! ; fg >/dev/null ; )
Hmm … the complete command winds up as a stopped job, though. Odd. Here's a workaround:
bash -c ' time ( set -m; sleep 10 & echo $! ; fg >/dev/null ; ) '
Of course, by then it might as well be:
bash -c ' time { set -m; sleep 10 & echo $! ; fg >/dev/null ; } '
I'd prefer avoiding that bash -c, but I'm kinda fresh out of ideas. :-\
ETA: Of course, if you don't have job control enabled in your shell, the first version works. If you do have job control enabled in your shell, you can turn it off first, and on again afterwards:
set +m; time ( set -m; sleep 10 & echo $! ; fg >/dev/null ; ) ; set -m
But for the general case, where the shell may or may not have job control enabled? Check for monitor in $SHELLOPTS and pick one?