Yes this is definitely due to looping.
Your first rule is removing .php
extension. Then 404 handler and 2nd rule is sending everything to .php
files hence looping will go on.
To avoid you can use these rules:
RewriteEngine On
RewriteBase /Website/
ErrorDocument 404 /Website/404.php
RewriteCond %{THE_REQUEST} \s/+/Website/(.+?)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ index.php?page=$1 [L,QSA]
Note use if %{THE_REQUEST}
instead of RewriteRule
. THE_REQUEST
variable represents original request received by Apache from your browser and it doesn't change by application of other rules.