You can combine two answers from StackOverflow to (almost) solve this issue.
- Use this answer (by tehvan) to create a getch()like method to read in one character from the user without the need for a\n. (repeated below from the answer)
- Use the Python3 version of this answer (by Barafu Albino) to call the previously defined _Getch()class in a separate process.
Please note that the following code works for Python3 only and uses any key to stop the process, not just the insert key.
# This code is a combination of two StackOverflow answers
# (links given in the answer)
# ------- Answer 1 by tehvan -----------------------------------
class _Getch:
    """Gets a single character from standard input.  
       Does not echo to the screen."""
    def __init__(self):
        try:
            self.impl = _GetchWindows()
        except ImportError:
            self.impl = _GetchUnix()
    def __call__(self): return self.impl()
class _GetchUnix:
    def __init__(self):
        import tty, sys
    def __call__(self):
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(sys.stdin.fileno())
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch
class _GetchWindows:
    def __init__(self):
        import msvcrt
    def __call__(self):
        import msvcrt
        return msvcrt.getch()
getch = _Getch()
# -------- Answer 2 by Barafu Albino (modified) -------
import _thread
def input_thread(a_list):
    _Getch().__call__()
    a_list.append(True)
def do_stuff():
    a_list = []
    _thread.start_new_thread(input_thread, (a_list,))
    print('Press any key to stop.')
    while not a_list:
        pass  
        # This is where you can put the stuff 
        # you want to do until the key is pressed
    print('Stopped.')
do_stuff()