Ti sei capito abbastanza da solo, ma l'importante è che hai risolto.

Il problema concettuale è che il framework MVC deve effettuare una sola operazione:

HttpRequest -> operazione -> HttpResponse

Dove "operazione" è tutto il tuo framework. Quindi qualsiasi op di handling della request http deve produrre una response http. Nel to caso, devi/dovevi strutturare la cosa in maniera da tornare una response che contenesse la pagina 404.

buon per te che hai risolto