In a small bowl, whisk together 2 tablespoons milk and cornstarch to make a slurry. Set aside. Grab a large bowl and fill it with 2 cups of ice and 1 cup of water. Nest another bowl into that bowl so that it's sitting on the ice water. Place a strainer on top of the inner bowl. Set this setup aside.
In a medium saucepan, add remaining milk, cream, sugar, and corn syrup. Bring to a boil over medium-high heat. Cook for 4 minutes then add in slurry. Continue cooking for 2 minutes or until thickened. Remove from heat.
In a small bowl, add softened cream cheese and whisk to smooth it out. Add about 1/4 cup of heated milk mixture and whisk together until smooth. Add mixture back to rest of milk.
Pour mixture through mesh sieve into chilled bowl. Stir to cool down the mixture. Add amaretto, almond extract, and vanilla extract and stir together. Place plastic wrap on top of milk mixture to prevent film from forming on top. Chill in refrigerator until really cold, at least 4 hours.
While the mixture is chilling, make the roasted cherries. Preheat oven to 400 degrees. Mix the cherries, cornstarch, and sugar in cake pan (square or rectangle is fine). Add in 1/3 cup of amaretto and stir together. Roast in oven for 35-40 minutes, or until juices have thickened. Remove from oven and mashed the cherries using a potato mashing. Stir in the last 2 tablespoons of amaretto and let the cherries cool to room temperature. Place in a medium bowl, cover, and chill in refrigerator until we use them later.
Once the amaretto ice cream base has chilled, it's time to freeze it. Freeze ice cream according to your ice cream maker's instructions (mine took about 15 minutes to freeze).
When the ice cream is finished, spread half of it into rectangular glass container with a lid. Spoon in roasted cherries and sauce and lay in dollops but do not mix. Repeat layer one more time and then spread top of the ice cream into one flat layer. Place plastic wrap directly on top of the ice cream and then cover with the lid. Freeze until firm, about 4 hours.